[INFO] cloning repository https://github.com/SubliminalCoding/Bones-Windows-Fork
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/SubliminalCoding/Bones-Windows-Fork" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSubliminalCoding%2FBones-Windows-Fork", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSubliminalCoding%2FBones-Windows-Fork'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 299b37f0b700d48fc2c01c87dda27701ba1035cb
[INFO] testing SubliminalCoding/Bones-Windows-Fork against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSubliminalCoding%2FBones-Windows-Fork" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/SubliminalCoding/Bones-Windows-Fork
[INFO] finished tweaking git repo https://github.com/SubliminalCoding/Bones-Windows-Fork
[INFO] tweaked toml for git repo https://github.com/SubliminalCoding/Bones-Windows-Fork written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/SubliminalCoding/Bones-Windows-Fork on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/SubliminalCoding/Bones-Windows-Fork already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rusqlite v0.30.0
[INFO] [stderr]   Downloaded terseid v0.1.2
[INFO] [stderr]   Downloaded sqlite-vec v0.1.7-alpha.10
[INFO] [stderr]   Downloaded tracing-opentelemetry v0.32.1
[INFO] [stderr]   Downloaded opentelemetry v0.31.0
[INFO] [stderr]   Downloaded opentelemetry_sdk v0.31.0
[INFO] [stderr]   Downloaded opentelemetry-otlp v0.31.0
[INFO] [stderr]   Downloaded opentelemetry-proto v0.31.0
[INFO] [stderr]   Downloaded opentelemetry-appender-tracing v0.31.1
[INFO] [stderr]   Downloaded opentelemetry-http v0.31.0
[INFO] [stderr]   Downloaded clap_complete v4.5.66
[INFO] [stderr]   Downloaded ort v2.0.0-rc.12
[INFO] [stderr]   Downloaded hmac-sha256 v1.1.14
[INFO] [stderr]   Downloaded ort-sys v2.0.0-rc.12
[INFO] [stderr]   Downloaded lzma-rust2 v0.15.7
[INFO] [stderr]   Downloaded ndarray v0.17.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8b61549a6df7d119037fdb6a399bb160634a94dc687c082f218c78caee858f51
[INFO] running `Command { std: "docker" "start" "-a" "8b61549a6df7d119037fdb6a399bb160634a94dc687c082f218c78caee858f51", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8b61549a6df7d119037fdb6a399bb160634a94dc687c082f218c78caee858f51", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8b61549a6df7d119037fdb6a399bb160634a94dc687c082f218c78caee858f51", kill_on_drop: false }`
[INFO] [stdout] 8b61549a6df7d119037fdb6a399bb160634a94dc687c082f218c78caee858f51
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5ecccd9b2267d439452601c8f04f21aaf23a86488b87fbef6123049e2029ad5a
[INFO] running `Command { std: "docker" "start" "-a" "5ecccd9b2267d439452601c8f04f21aaf23a86488b87fbef6123049e2029ad5a", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling libsqlite3-sys v0.27.0
[INFO] [stderr]    Compiling sqlite-vec v0.1.7-alpha.10
[INFO] [stderr]    Compiling blake3 v1.8.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling arrayref v0.3.9
[INFO] [stderr]    Compiling constant_time_eq v0.4.2
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling memmap2 v0.9.10
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling opentelemetry v0.31.0
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling terseid v0.1.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling pin-project v1.1.11
[INFO] [stderr]    Compiling prost-derive v0.14.3
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling rusqlite v0.30.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling prost v0.14.3
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling bones-sqlite-vec v0.22.11 (/opt/rustwide/workdir/crates/bones-sqlite-vec)
[INFO] [stderr]    Compiling tonic v0.14.5
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling bones-core v0.22.11 (/opt/rustwide/workdir/crates/bones-core)
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling proptest v1.10.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling simba v0.8.1
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling tonic-prost v0.14.5
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling opentelemetry_sdk v0.31.0
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling nalgebra v0.32.6
[INFO] [stderr]    Compiling opentelemetry-proto v0.31.0
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling bones-sim v0.22.11 (/opt/rustwide/workdir/crates/bones-sim)
[INFO] [stderr]    Compiling opentelemetry-http v0.31.0
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling pulldown-cmark v0.12.2
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling opentelemetry-otlp v0.31.0
[INFO] [stderr]    Compiling clap_complete v4.5.66
[INFO] [stderr]    Compiling ureq v2.12.1
[INFO] [stderr]    Compiling bones-search v0.22.11 (/opt/rustwide/workdir/crates/bones-search)
[INFO] [stderr]    Compiling tracing-opentelemetry v0.32.1
[INFO] [stderr]    Compiling opentelemetry-appender-tracing v0.31.1
[INFO] [stderr]    Compiling bones-triage v0.22.11 (/opt/rustwide/workdir/crates/bones-triage)
[INFO] [stderr]    Compiling bones-cli v0.22.11 (/opt/rustwide/workdir/crates/bones-cli)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 31s
[INFO] running `Command { std: "docker" "inspect" "5ecccd9b2267d439452601c8f04f21aaf23a86488b87fbef6123049e2029ad5a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5ecccd9b2267d439452601c8f04f21aaf23a86488b87fbef6123049e2029ad5a", kill_on_drop: false }`
[INFO] [stdout] 5ecccd9b2267d439452601c8f04f21aaf23a86488b87fbef6123049e2029ad5a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1f0374996dc0509c39365b4ca5681f11d92ec3829b642608c3a325282cbc7be5
[INFO] running `Command { std: "docker" "start" "-a" "1f0374996dc0509c39365b4ca5681f11d92ec3829b642608c3a325282cbc7be5", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerocopy-derive v0.8.42
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling simba v0.8.1
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling assert_cmd v2.2.0
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling opentelemetry-http v0.31.0
[INFO] [stderr]    Compiling tracing-opentelemetry v0.32.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling nalgebra v0.32.6
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rusqlite v0.30.0
[INFO] [stderr]    Compiling opentelemetry-appender-tracing v0.31.1
[INFO] [stderr]    Compiling ureq v2.12.1
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling proptest v1.10.0
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling bones-sqlite-vec v0.22.11 (/opt/rustwide/workdir/crates/bones-sqlite-vec)
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling bones-core v0.22.11 (/opt/rustwide/workdir/crates/bones-core)
[INFO] [stderr]    Compiling opentelemetry_sdk v0.31.0
[INFO] [stderr]    Compiling opentelemetry-proto v0.31.0
[INFO] [stderr]    Compiling bones-search v0.22.11 (/opt/rustwide/workdir/crates/bones-search)
[INFO] [stderr]    Compiling bones-sim v0.22.11 (/opt/rustwide/workdir/crates/bones-sim)
[INFO] [stderr]    Compiling opentelemetry-otlp v0.31.0
[INFO] [stderr]    Compiling bones-triage v0.22.11 (/opt/rustwide/workdir/crates/bones-triage)
[INFO] [stdout] warning: field `deps` is never read
[INFO] [stdout]   --> crates/bones-search/tests/gold_eval.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct GoldItem {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     deps: Vec<String>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GoldItem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling bones-cli v0.22.11 (/opt/rustwide/workdir/crates/bones-cli)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 54s
[INFO] running `Command { std: "docker" "inspect" "1f0374996dc0509c39365b4ca5681f11d92ec3829b642608c3a325282cbc7be5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1f0374996dc0509c39365b4ca5681f11d92ec3829b642608c3a325282cbc7be5", kill_on_drop: false }`
[INFO] [stdout] 1f0374996dc0509c39365b4ca5681f11d92ec3829b642608c3a325282cbc7be5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 56b6cffc38b2595f9253e172303d267487679d480b0a0db3a023c86a18b4f1db
[INFO] running `Command { std: "docker" "start" "-a" "56b6cffc38b2595f9253e172303d267487679d480b0a0db3a023c86a18b4f1db", kill_on_drop: false }`
[INFO] [stderr] warning: field `deps` is never read
[INFO] [stderr]   --> crates/bones-search/tests/gold_eval.rs:55:5
[INFO] [stderr]    |
[INFO] [stderr] 50 | struct GoldItem {
[INFO] [stderr]    |        -------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 55 |     deps: Vec<String>,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `GoldItem` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `bones-search` (test "gold_eval") generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.64s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/bn-9a12abdd30590d1e)
[INFO] [stdout] 
[INFO] [stdout] running 614 tests
[INFO] [stdout] test agent::tests::no_identity_returns_none ... ok
[INFO] [stdout] test agent::tests::require_agent_succeeds_with_flag ... ok
[INFO] [stdout] test agent::tests::empty_flag_ignored ... ok
[INFO] [stdout] test agent::tests::cli_flag_takes_priority ... ok
[INFO] [stdout] test agent::tests::empty_env_ignored ... ok
[INFO] [stdout] test agent::tests::agent_env_fallback ... ok
[INFO] [stdout] test agent::tests::bones_agent_env_fallback ... ok
[INFO] [stdout] test agent::tests::user_env_only_in_tty ... ok
[INFO] [stdout] test cmd::archive::tests::archive_args_parse_auto_mode ... ok
[INFO] [stdout] test cmd::agents::tests::to_rfc3339_formats_valid_microsecond_timestamp ... ok
[INFO] [stdout] test agent::tests::resolution_chain_order ... ok
[INFO] [stdout] test agent::tests::require_agent_returns_error_when_missing ... ok
[INFO] [stdout] test cmd::archive::tests::archive_args_parse_manual_mode ... ok
[INFO] [stdout] test cmd::archive::tests::read_days_from_config_archive_section ... ok
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "invalid_arguments",
[INFO] [stderr]     "message": "cannot use bone ID together with --auto",
[INFO] [stderr]     "suggestion": "Use either 'bn archive <id>' or 'bn archive --auto [--days N]'"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "invalid_transition",
[INFO] [stderr]     "message": "cannot transition 'bn-archive1' from open to archived: transition not allowed by lifecycle rules",
[INFO] [stderr]     "suggestion": "Archive is only valid for done items. Use 'bn done <id>' first"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stdout] test cmd::archive::tests::archive_auto_rejects_with_id ... ok
[INFO] [stdout] test cmd::assign::tests::assign_args_parse ... ok
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "missing_argument",
[INFO] [stderr]     "message": "missing required item ID (or use --auto)",
[INFO] [stderr]     "suggestion": "Usage: 'bn archive <id>' or 'bn archive --auto [--days N]'"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stdout] test cmd::archive::tests::archive_manual_requires_id ... ok
[INFO] [stdout] test cmd::archive::tests::archive_rejects_open ... ok
[INFO] [stdout] test cmd::assign::tests::unassign_args_parse ... ok
[INFO] [stdout] test cmd::bones_gitattributes::tests::creates_bones_gitattributes_with_union_entry ... ok
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "invalid_transition",
[INFO] [stderr]     "message": "cannot transition 'bn-archive1' from archived to archived: no-op transition is not allowed",
[INFO] [stderr]     "suggestion": "Item is already archived"
[INFO] [stderr]   }
[INFO] [stdout] test cmd::bones_gitattributes::tests::migrates_legacy_bones_entry_to_glob ... ok
[INFO] [stderr] }
[INFO] [stdout] test cmd::bones_gitattributes::tests::ensure_bones_gitattributes_is_idempotent ... ok
[INFO] [stdout] test cmd::bones_gitattributes::tests::removes_root_file_if_legacy_was_only_entry ... ok
[INFO] [stdout] test cmd::bones_gitattributes::tests::removes_legacy_root_entry_when_present ... ok
[INFO] [stdout] test cmd::bones_gitignore::tests::ensure_is_idempotent ... ok
[INFO] [stdout] test cmd::bones_gitignore::tests::creates_gitignore_with_managed_entries ... ok
[INFO] [stdout] test cmd::close::tests::close_args_parse_id ... ok
[INFO] [stdout] test cmd::close::tests::close_args_parse_with_reason ... ok
[INFO] [stdout] test cmd::archive::tests::archive_rejects_archived ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-archive1",
[INFO] [stdout]   "previous_state": "done",
[INFO] [stdout]   "new_state": "archived",
[INFO] [stdout]   "agent": "test-agent",
[INFO] [stdout]   "event_hash": "blake3:uFBvwXk355YGlaI6ClkUA8nKHDoseyvwUYTjWU7-IjY"
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "archived_count": 1,
[INFO] [stdout]   "days": 30,
[INFO] [stdout]   "archived_ids": [
[INFO] [stdout]     "bn-archive1"
[INFO] [stdout]   ],
[INFO] [stdout]   "agent": "test-agent"
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "ok": true,
[INFO] [stdout]   "item_id": "bn-asg1",
[INFO] [stdout]   "agent": "alice",
[INFO] [stdout]   "action": "assign",
[INFO] [stdout]   "event_hash": "blake3:lqb1DpQy29KyeQx8-i0ttZfX-OIm8YOxfEpbjD0KuNE"
[INFO] [stdout] }
[INFO] [stdout] test cmd::archive::tests::archive_auto_archives_old_done_items ... ok
[INFO] [stdout] test cmd::archive::tests::archive_from_done ... ok
[INFO] [stdout] test cmd::comment::tests::comment_add_args_parse ... ok
[INFO] [stdout] test cmd::comment::tests::comments_args_parse ... ok
[INFO] [stdout] test cmd::agents::tests::collect_agent_inventory_merges_event_and_assignment_sources ... ok
[INFO] [stdout] {
[INFO] [stdout]   "ok": true,
[INFO] [stdout]   "item_id": "bn-asg1",
[INFO] [stdout]   "agent": "alice",
[INFO] [stdout]   "action": "assign",
[INFO] [stdout]   "event_hash": "blake3:mF0c9ay7XMEErvfMta6vhAMWnPCRQsAiOPIx8UA-BoU"
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "ok": true,
[INFO] [stdout]   "item_id": "bn-asg1",
[INFO] [stdout]   "agent": "alice",
[INFO] [stdout]   "action": "unassign",
[INFO] [stdout]   "event_hash": "blake3:VUW2Yd9ajdEl3_DYWoqIPCdnx7pT2lxmj7v9bH5koXs"
[INFO] [stdout] }
[INFO] [stdout] test cmd::assign::tests::assign_supports_partial_item_id ... ok
[INFO] [stdout] test cmd::assign::tests::assign_and_unassign_roundtrip ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-close1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "open",
[INFO] [stdout]       "new_state": "done",
[INFO] [stdout]       "event_hash": "blake3:MpTPScayZ9caLFcxmSzOiOQDKVdEGtaM7aQkFhnCqbI"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-close1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "open",
[INFO] [stdout]       "new_state": "done",
[INFO] [stdout]       "event_hash": "blake3:b2EPHuG33PrP7ckbF06HoO82EsATVouYb-ukWCsJie8"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::close::tests::close_from_open ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-close1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "doing",
[INFO] [stdout]       "new_state": "done",
[INFO] [stdout]       "event_hash": "blake3:c7Axok8dSw7JkrHGhp5ffT04-JE11IgAIpYBZjYER80"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-close1",
[INFO] [stdout]       "ok": false,
[INFO] [stdout]       "error": "cannot transition 'bn-close1' from done to done: no-op transition is not allowed"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::close::tests::close_rejects_already_done ... ok
[INFO] [stdout] test cmd::comment::tests::timeline_rows_sorted_oldest_first ... ok
[INFO] [stdout] test cmd::comment::tests::validate_comment_body_rejects_control_chars ... ok
[INFO] [stdout] test cmd::create::tests::create_agent_error_has_correct_code ... ok
[INFO] [stdout] test cmd::close::tests::close_partial_id ... ok
[INFO] [stdout] test cmd::close::tests::close_from_doing ... ok
[INFO] [stdout] test cmd::create::tests::create_args_all_flags ... ok
[INFO] [stdout] test cmd::create::tests::create_args_from_file ... ok
[INFO] [stdout] test cmd::create::tests::create_args_defaults ... ok
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "secret_detected",
[INFO] [stderr]     "message": "invalid title '<redacted>': contains a high-confidence secret pattern (github_token)",
[INFO] [stderr]     "suggestion": "remove credentials from text or pass --allow-secret to override intentionally"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stdout] test cmd::create::tests::create_blocks_secret_without_override ... ok
[INFO] [stdout] test cmd::create::tests::create_force_flag_default_false ... ok
[INFO] [stdout] test cmd::create::tests::create_force_flag_parsing ... ok
[INFO] [stdout] test cmd::comment::tests::run_comment_add_blocks_secret_without_override ... ok
[INFO] [stdout] test cmd::create::tests::create_fails_without_bones_dir ... ok
[INFO] [stdout] {
[INFO] [stdout]   "ok": true,
[INFO] [stdout]   "item_id": "bn-cmt1",
[INFO] [stdout]   "agent": "alice",
[INFO] [stdout]   "body": "Using partial id",
[INFO] [stdout]   "ts": 1781256883061143,
[INFO] [stdout]   "event_hash": "blake3:0Gcgu2SM81NZfzAvkSkHQx4ww7hBLHK3rlrbYXaCQR4"
[INFO] [stdout] }
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "secret_detected",
[INFO] [stderr]     "message": "invalid body '<redacted>': contains a high-confidence secret pattern (github_token)",
[INFO] [stderr]     "suggestion": "remove credentials from text or pass --allow-secret to override intentionally"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stderr] error: Not a bones project: .bones directory not found
[INFO] [stderr]   suggestion: Run 'bn init' to create a new bones project
[INFO] [stdout] {
[INFO] [stdout]   "ok": true,
[INFO] [stdout]   "item_id": "bn-cmt1",
[INFO] [stdout]   "agent": "alice",
[INFO] [stdout]   "body": "ghp_abcdefghijklmnopqrstuvwxyz012345",
[INFO] [stdout]   "ts": 1781256883066776,
[INFO] [stdout]   "event_hash": "blake3:y8tDYdHefaK4GugmGIqX-05CWHYBHtICj_22jIvBD4Y"
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "ok": true,
[INFO] [stdout]   "item_id": "bn-cmt1",
[INFO] [stdout]   "agent": "alice",
[INFO] [stdout]   "body": "Root cause found",
[INFO] [stdout]   "ts": 1781256883079139,
[INFO] [stdout]   "event_hash": "blake3:tlRKrbZl9ez12lHajneeZnyNh7d2aWB436iYK5vTYXY"
[INFO] [stdout] }
[INFO] [stdout] test cmd::comment::tests::run_comment_add_accepts_partial_id ... ok
[INFO] [stdout] test cmd::comment::tests::run_comment_add_allows_secret_with_override ... ok
[INFO] [stdout] test cmd::comment::tests::run_comment_add_projects_comment ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-p3y",
[INFO] [stdout]   "title": "Test item",
[INFO] [stdout]   "kind": "task",
[INFO] [stdout]   "state": "open",
[INFO] [stdout]   "urgency": "default",
[INFO] [stdout]   "agent": "agent",
[INFO] [stdout]   "event_hash": "blake3:V7GtJ-o5iVmNvqbh3zblC5FEDni9af93-VuwenBd9WE"
[INFO] [stdout] }
[INFO] [stdout] test cmd::create::tests::create_rejects_invalid_kind ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-e1s",
[INFO] [stdout]   "title": "ghp_abcdefghijklmnopqrstuvwxyz012345",
[INFO] [stdout]   "kind": "task",
[INFO] [stdout]   "state": "open",
[INFO] [stdout]   "urgency": "default",
[INFO] [stdout]   "agent": "agent",
[INFO] [stdout]   "event_hash": "blake3:7CvdT7a3w7cJNUTEswFTQEYCQ79Nkz3ytrbrkIKFYIk"
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "ok": true,
[INFO] [stdout]   "item_id": "bn-cmt1",
[INFO] [stdout]   "agent": "alice",
[INFO] [stdout]   "body": "first",
[INFO] [stdout]   "ts": 1781256883101207,
[INFO] [stdout]   "event_hash": "blake3:9Z5nkRSNX3O338D8uBAsoVMsTei0b4xtY3yAb0a2fl8"
[INFO] [stdout] }
[INFO] [stdout] test cmd::create::tests::create_rejects_invalid_size ... ok
[INFO] [stdout] test cmd::create::tests::create_allows_secret_with_override ... ok
[INFO] [stdout] test cmd::create::tests::create_rejects_invalid_urgency ... ok
[INFO] [stderr] error: invalid kind 'epic': expected one of task, goal, bug
[INFO] [stderr]   suggestion: use --kind task|goal|bug
[INFO] [stderr] error: invalid size 'mega': expected one of xs, s, m, l, xl
[INFO] [stderr]   suggestion: use --size s, --size m, etc.
[INFO] [stderr] error: invalid urgency 'hot': expected one of urgent, default, punt
[INFO] [stderr]   suggestion: Use --urgency urgent, --urgency punt, etc.
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-b38",
[INFO] [stdout]   "title": "First item",
[INFO] [stdout]   "kind": "task",
[INFO] [stdout]   "state": "open",
[INFO] [stdout]   "urgency": "default",
[INFO] [stdout]   "agent": "agent",
[INFO] [stdout]   "event_hash": "blake3:MlakiFJ72dnQMkEuwFM5qZVdKQPbFlsKEqvjgglBueU"
[INFO] [stdout] }
[INFO] [stdout] [
[INFO] [stdout]   {
[INFO] [stdout]     "hash": "blake3:9Z5nkRSNX3O338D8uBAsoVMsTei0b4xtY3yAb0a2fl8",
[INFO] [stdout]     "agent": "alice",
[INFO] [stdout]     "body": "first",
[INFO] [stdout]     "ts": 1781256883101207
[INFO] [stdout]   }
[INFO] [stdout] ]
[INFO] [stdout] test cmd::comment::tests::run_comments_succeeds ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-3ec",
[INFO] [stdout]   "title": "JSON test",
[INFO] [stdout]   "kind": "bug",
[INFO] [stdout]   "state": "open",
[INFO] [stdout]   "urgency": "urgent",
[INFO] [stdout]   "agent": "agent",
[INFO] [stdout]   "event_hash": "blake3:rMGXx6-2S5nSHSw-T42SfU0jJOu6rc0Cnq_FpEEexPc"
[INFO] [stdout] }
[INFO] [stdout] test cmd::create::tests::create_item_json_output ... ok
[INFO] [stdout] test cmd::create::tests::find_bones_dir_found ... ok
[INFO] [stdout] test cmd::create::tests::find_bones_dir_in_parent ... ok
[INFO] [stdout] test cmd::create::tests::find_bones_dir_not_found ... ok
[INFO] [stdout] test cmd::create::tests::labels_alias_splits_commas ... ok
[INFO] [stdout] test cmd::create::tests::mixed_label_aliases_merge ... ok
[INFO] [stdout] test cmd::create::tests::parse_create_file_detects_json_object ... ok
[INFO] [stdout] test cmd::create::tests::parse_create_file_detects_toml_collection ... ok
[INFO] [stdout] test cmd::create::tests::read_description_none ... ok
[INFO] [stdout] test cmd::create::tests::read_description_regular ... ok
[INFO] [stdout] test cmd::create::tests::tag_alias_works_like_label ... ok
[INFO] [stdout] test cmd::create::tests::tags_alias_splits_commas ... ok
[INFO] [stdout] test cmd::cycles::tests::cycles_args_parse_no_flags ... ok
[INFO] [stdout] test cmd::cycles::tests::render_cycles_human_lists_groups ... ok
[INFO] [stdout] test cmd::cycles::tests::render_cycles_human_no_cycles ... ok
[INFO] [stdout] test cmd::dedup::tests::bm25_normalization_handles_degenerate_source ... ok
[INFO] [stdout] test cmd::dedup::tests::canonical_pair_is_order_independent ... ok
[INFO] [stdout] test cmd::dedup::tests::cluster_deduplicates_bidirectional_pairs ... ok
[INFO] [stdout] test cmd::dedup::tests::cluster_respects_threshold ... ok
[INFO] [stdout] test cmd::dedup::tests::cluster_transitive_closure ... ok
[INFO] [stdout] test cmd::dedup::tests::dedup_uses_sanitized_fts_query_builder ... ok
[INFO] [stdout] test cmd::delete::tests::delete_args_parse ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-p3y",
[INFO] [stdout]   "title": "Test item",
[INFO] [stdout]   "kind": "task",
[INFO] [stdout]   "state": "open",
[INFO] [stdout]   "urgency": "default",
[INFO] [stdout]   "size": "m",
[INFO] [stdout]   "labels": [
[INFO] [stdout]     "test"
[INFO] [stdout]   ],
[INFO] [stdout]   "description": "A test description",
[INFO] [stdout]   "agent": "test-agent",
[INFO] [stdout]   "event_hash": "blake3:Enp40DZhn5eGuOah3-8N_1JX0Xv7SYDbzF7gBWIazHk"
[INFO] [stdout] }
[INFO] [stdout] test cmd::create::tests::create_item_end_to_end ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-80l",
[INFO] [stdout]   "title": "Item with desc",
[INFO] [stdout]   "kind": "task",
[INFO] [stdout]   "state": "open",
[INFO] [stdout]   "urgency": "default",
[INFO] [stdout]   "description": "Detailed description here",
[INFO] [stdout]   "agent": "agent",
[INFO] [stdout]   "event_hash": "blake3:wAvr8CZorUcNBVOPvZekLiwffudLg_gZ05tuYH7dcnE"
[INFO] [stdout] }
[INFO] [stdout] test cmd::create::tests::create_with_description ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-90a",
[INFO] [stdout]   "title": "Fix authentication timeout bug",
[INFO] [stdout]   "kind": "bug",
[INFO] [stdout]   "state": "open",
[INFO] [stdout]   "urgency": "default",
[INFO] [stdout]   "labels": [
[INFO] [stdout]     "backend"
[INFO] [stdout]   ],
[INFO] [stdout]   "agent": "agent",
[INFO] [stdout]   "event_hash": "blake3:mxzwV-fPMnfi-8L0ilwozci9h7BajP8VsrKG22oqA10"
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-1pc",
[INFO] [stdout]   "title": "Labeled item",
[INFO] [stdout]   "kind": "task",
[INFO] [stdout]   "state": "open",
[INFO] [stdout]   "urgency": "default",
[INFO] [stdout]   "labels": [
[INFO] [stdout]     "backend",
[INFO] [stdout]     "auth"
[INFO] [stdout]   ],
[INFO] [stdout]   "agent": "agent",
[INFO] [stdout]   "event_hash": "blake3:BxRcWTE4yBSRPHHRXoXX8ru-ZIs_iaNZagN4mSOBRd0"
[INFO] [stdout] }
[INFO] [stderr] error: cannot link an item to itself
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-1or",
[INFO] [stdout]   "title": "Test item",
[INFO] [stdout]   "kind": "task",
[INFO] [stdout]   "state": "open",
[INFO] [stdout]   "urgency": "default",
[INFO] [stdout]   "agent": "agent",
[INFO] [stdout]   "event_hash": "blake3:OlZeDKwBtXzCLzlBqm9q-Zn5fGsT6jLt-hndG_mTYYQ"
[INFO] [stdout] }
[INFO] [stdout] test cmd::create::tests::create_with_labels ... ok
[INFO] [stdout] test cmd::dep::tests::dep_add_args_blocks ... ok
[INFO] [stdout] test cmd::dep::tests::dep_add_args_relates ... ok
[INFO] [stdout] test cmd::dep::tests::dep_add_cannot_have_both_blocks_and_relates ... ok
[INFO] [stdout] test cmd::dep::tests::dep_add_output_serialization ... ok
[INFO] [stdout] test cmd::create::tests::create_force_skips_duplicate_check ... ok
[INFO] [stdout] test cmd::dep::tests::dep_add_self_link_rejected ... ok
[INFO] [stdout] test cmd::dep::tests::dep_rm_args ... ok
[INFO] [stdout] {
[INFO] [stdout]   "created": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-tpc",
[INFO] [stdout]       "title": "First from file",
[INFO] [stdout]       "kind": "task",
[INFO] [stdout]       "state": "open",
[INFO] [stdout]       "urgency": "default",
[INFO] [stdout]       "description": "Here's the multi-line description.\nIt can have `backticks`.\n",
[INFO] [stdout]       "agent": "agent",
[INFO] [stdout]       "event_hash": "blake3:aQlW4HnZMPRaeQLRJH2-4RueT7kpx0p8bkW-4fPyn8A"
[INFO] [stdout]     },
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-2l0",
[INFO] [stdout]       "title": "Second from file",
[INFO] [stdout]       "kind": "task",
[INFO] [stdout]       "state": "open",
[INFO] [stdout]       "urgency": "default",
[INFO] [stdout]       "labels": [
[INFO] [stdout]         "one",
[INFO] [stdout]         "two"
[INFO] [stdout]       ],
[INFO] [stdout]       "agent": "agent",
[INFO] [stdout]       "event_hash": "blake3:wCbF1pEYui2tFZQbY9dItovqvWzfG8kmdYjDP9RwpJI",
[INFO] [stdout]       "duplicates": [
[INFO] [stdout]         {
[INFO] [stdout]           "item_id": "bn-tpc",
[INFO] [stdout]           "score": 1.0,
[INFO] [stdout]           "classification": "LikelyDuplicate"
[INFO] [stdout]         }
[INFO] [stdout]       ]
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::create::tests::create_from_file_supports_multiple_yaml_documents ... ok
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "not_a_project",
[INFO] [stderr]     "message": "Not a bones project: .bones directory not found",
[INFO] [stderr]     "suggestion": "Run 'bn init' to create a new bones project"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stdout] test cmd::diagnose::tests::diagnose_detects_unknown_parent_and_orphan_events ... ok
[INFO] [stdout] test cmd::diagnose::tests::top_counts_orders_by_count_desc_then_key ... ok
[INFO] [stdout] test cmd::do_cmd::tests::do_args_parses_id ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-del1",
[INFO] [stdout]       "ok": true
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::do_cmd::tests::do_not_bones_project ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-1oy",
[INFO] [stdout]   "title": "Second item",
[INFO] [stdout]   "kind": "task",
[INFO] [stdout]   "state": "open",
[INFO] [stdout]   "urgency": "default",
[INFO] [stdout]   "agent": "agent",
[INFO] [stdout]   "event_hash": "blake3:a9bGC3_IYWl88kK-4GnWgYqCJRDX__S5oIlqNDqvT4c"
[INFO] [stdout] }
[INFO] [stdout] test cmd::create::tests::create_generates_unique_ids ... ok
[INFO] [stdout] test cmd::delete::tests::delete_marks_item_deleted ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-del1",
[INFO] [stdout]       "ok": true
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-2l0",
[INFO] [stdout]   "title": "Fix auth timeout issue",
[INFO] [stdout]   "kind": "bug",
[INFO] [stdout]   "state": "open",
[INFO] [stdout]   "urgency": "default",
[INFO] [stdout]   "agent": "agent",
[INFO] [stdout]   "event_hash": "blake3:s8PQtBhJPQFTZAAHuxkS0Ajo16p3qMQ2iUZsOgH3VRg",
[INFO] [stdout]   "duplicates": [
[INFO] [stdout]     {
[INFO] [stdout]       "item_id": "bn-90a",
[INFO] [stdout]       "score": 1.0,
[INFO] [stdout]       "classification": "LikelyDuplicate"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::create::tests::create_with_duplicate_detection ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-del1",
[INFO] [stdout]       "ok": false,
[INFO] [stdout]       "error": "item 'bn-del1' is already deleted"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::delete::tests::delete_rejects_already_deleted_item ... ok
[INFO] [stdout] test cmd::diagnose::tests::diagnose_detects_projection_cursor_drift ... ok
[INFO] [stdout] ✓ bn-ca1 blocks bn-ca2
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "open",
[INFO] [stdout]       "new_state": "doing",
[INFO] [stdout]       "event_hash": "blake3:CTSWXxRJQnOzlw-FLKeUvDh5fcYfpgXNzv4sZFaN0Y4"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] ✓ bn-aaa blocks bn-bbb
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "open",
[INFO] [stdout]       "new_state": "doing",
[INFO] [stdout]       "event_hash": "blake3:1qjlWaRN6kPB7W98-tFiXW93tdFtV-Y1KOCUj5mEgjw"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": false,
[INFO] [stdout]       "error": "cannot transition 'bn-test1' from doing to doing: no-op transition is not allowed"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::do_cmd::tests::do_open_to_doing ... ok
[INFO] [stdout] test cmd::do_cmd::tests::do_rejects_already_doing ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-nonexistent",
[INFO] [stdout]       "ok": false,
[INFO] [stdout]       "error": "item 'bn-nonexistent' not found"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": false,
[INFO] [stdout]       "error": "cannot transition 'bn-test1' from archived to doing: transition not allowed by lifecycle rules"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::do_cmd::tests::do_partial_id_resolution ... ok
[INFO] [stdout] test cmd::done::tests::done_args_parses_id ... ok
[INFO] [stdout] test cmd::done::tests::done_args_parses_reason ... ok
[INFO] [stdout] test cmd::do_cmd::tests::do_rejects_nonexistent_item ... ok
[INFO] [stdout] test cmd::do_cmd::tests::do_rejects_archived_item ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": false,
[INFO] [stdout]       "error": "cannot transition 'bn-test1' from done to doing: transition not allowed by lifecycle rules"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::do_cmd::tests::do_rejects_done_item ... ok
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "missing_agent",
[INFO] [stderr]     "message": "Agent identity required for this command. Set --agent, BONES_AGENT, or AGENT environment variable.",
[INFO] [stderr]     "suggestion": "Set --agent, BONES_AGENT, or AGENT"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stdout] test cmd::do_cmd::tests::do_requires_agent ... ok
[INFO] [stdout] ✓ bn-ca2 blocks bn-ca3
[INFO] [stdout] ✓ removed link: bn-aaa → bn-bbb
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "open",
[INFO] [stdout]       "new_state": "doing",
[INFO] [stdout]       "event_hash": "blake3:RzlDameIGG9adoHWs2VoTRF343kYRyOcjwiBRsIzKz0"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "doing",
[INFO] [stdout]       "new_state": "done",
[INFO] [stdout]       "event_hash": "blake3:VUjJNlv_jxsJj6NJyIzAceo9D5EIo9JlSr5qgWP8OmI"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::do_cmd::tests::do_writes_event_to_shard ... ok
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "not_a_project",
[INFO] [stderr]     "message": "Not a bones project: .bones directory not found",
[INFO] [stderr]     "suggestion": "Run 'bn init' to create a new bones project"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stdout] test cmd::done::tests::done_not_bones_project ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "open",
[INFO] [stdout]       "new_state": "done",
[INFO] [stdout]       "event_hash": "blake3:nhvr_JFDsJmMOVudhY3IrisOco3eKHL-TdPlWQqJrhI"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::done::tests::done_from_doing ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-child2",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "open",
[INFO] [stdout]       "new_state": "doing",
[INFO] [stdout]       "event_hash": "blake3:Kn0iXfca9PH2ML_RTkH5huuD1TRXoOnlWOhYE04N0JM"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-child1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "open",
[INFO] [stdout]       "new_state": "done",
[INFO] [stdout]       "event_hash": "blake3:wINEXiQC3yhNGbYCCJc6N2KgPApRNSKNQ4-3mF1YF-A"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::done::tests::done_from_open ... ok
[INFO] [stdout] test cmd::done::tests::done_no_auto_complete_for_task_parent ... ok
[INFO] [stdout] test cmd::dep::tests::dep_add_and_rm_end_to_end ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "doing",
[INFO] [stdout]       "new_state": "done",
[INFO] [stdout]       "event_hash": "blake3:sVg1ufjAg1DARG7ZQfSDSR8yeEO19dgPjdg8bfiXKGs"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-child2",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "doing",
[INFO] [stdout]       "new_state": "done",
[INFO] [stdout]       "event_hash": "blake3:KHKG7OH7uM--w1iYWF1VcrjlYPG5nyy8ELAgonDtxqg",
[INFO] [stdout]       "auto_completed_parent": "bn-goal1"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stderr] error: adding this dependency would create a cycle: bn-ca3 → bn-ca1 → bn-ca2 → bn-ca3
[INFO] [stdout] test cmd::dep::tests::dep_add_rejects_cycle ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-child2",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "open",
[INFO] [stdout]       "new_state": "doing",
[INFO] [stdout]       "event_hash": "blake3:qnJ-TJYu3GfDnTcgfJmq-73fCbJcbDbL49F4XBVi7ko"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::done::tests::done_partial_id_resolution ... ok
[INFO] [stdout] test cmd::dup::tests::build_fts_query_deduplicates_tokens ... ok
[INFO] [stdout] test cmd::dup::tests::build_fts_query_empty_title_no_desc ... ok
[INFO] [stdout] test cmd::dup::tests::build_fts_query_filters_template_noise_tokens ... ok
[INFO] [stdout] test cmd::dup::tests::build_fts_query_from_title_only ... ok
[INFO] [stdout] test cmd::dup::tests::build_fts_query_includes_description ... ok
[INFO] [stdout] test cmd::done::tests::done_goal_auto_complete_triggers ... ok
[INFO] [stdout] test cmd::dup::tests::build_fts_query_splits_hyphenated_tokens ... ok
[INFO] [stdout] test cmd::dup::tests::build_fts_query_strips_short_tokens ... ok
[INFO] [stdout] test cmd::dup::tests::build_fts_query_strips_specials ... ok
[INFO] [stdout] test cmd::dup::tests::classify_match_likely_duplicate ... ok
[INFO] [stdout] test cmd::dup::tests::classify_match_maybe_related ... ok
[INFO] [stdout] test cmd::dup::tests::classify_match_possibly_related ... ok
[INFO] [stdout] test cmd::dup::tests::dup_args_parse_threshold ... ok
[INFO] [stdout] test cmd::dup::tests::dup_output_json_serializable ... ok
[INFO] [stdout] test cmd::dup::tests::dup_args_parse_id ... ok
[INFO] [stdout] test cmd::dup::tests::match_type_serializes_snake_case ... ok
[INFO] [stdout] test cmd::dup::tests::meaningful_overlap_accepts_shared_domain_tokens ... ok
[INFO] [stdout] test cmd::dup::tests::meaningful_overlap_rejects_phase_scaffolding_only ... ok
[INFO] [stdout] test cmd::dup::tests::render_dup_human_no_candidates ... ok
[INFO] [stdout] test cmd::dup::tests::render_dup_human_with_candidates ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-nonexistent",
[INFO] [stdout]       "ok": false,
[INFO] [stdout]       "error": "item 'bn-nonexistent' not found"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": false,
[INFO] [stdout]       "error": "cannot transition 'bn-test1' from done to done: no-op transition is not allowed"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::done::tests::done_rejects_already_done ... ok
[INFO] [stdout] test cmd::done::tests::done_rejects_nonexistent_item ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-child2",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "doing",
[INFO] [stdout]       "new_state": "done",
[INFO] [stdout]       "event_hash": "blake3:S-7izcL4mwGjdOvSObz6aUF5qDbYh5BlDreZ1XWGZOQ"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::done::tests::done_goal_no_auto_complete_when_siblings_open ... {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": false,
[INFO] [stdout]       "error": "cannot transition 'bn-test1' from archived to done: transition not allowed by lifecycle rules"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stderr] error: projection database not found
[INFO] [stdout] ok
[INFO] [stderr]   suggestion: run `bn admin rebuild` to initialize the projection
[INFO] [stdout] test cmd::dup::tests::run_dup_missing_projection_errors ... ok
[INFO] [stdout] test cmd::done::tests::done_rejects_archived ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "doing",
[INFO] [stdout]       "new_state": "done",
[INFO] [stdout]       "event_hash": "blake3:2r6V99z7e0rCW-XyHrE5q2xKbshBCRLi16yq_AxSRwk"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::done::tests::done_with_reason ... ok
[INFO] [stdout] test cmd::feedback::tests::did_args_parses_id ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "doing",
[INFO] [stdout]       "new_state": "done",
[INFO] [stdout]       "event_hash": "blake3:EYLdQFmRPn937Z3Qsyt6n2oDQ6IT6Rz6MybPgmAOc-Q"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::done::tests::done_writes_event_to_shard ... ok
[INFO] [stderr] {
[INFO] [stdout] test cmd::feedback::tests::did_not_a_bones_project ... ok
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "not_a_project",
[INFO] [stderr]     "message": "Not a bones project: .bones directory not found",
[INFO] [stderr]     "suggestion": "Run 'bn init' to create a new bones project"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-feed1",
[INFO] [stdout]   "action": "did",
[INFO] [stdout]   "agent": "test-agent",
[INFO] [stdout]   "ts": 1781256883
[INFO] [stdout] }
[INFO] [stdout] test cmd::feedback::tests::did_appends_feedback_log ... ok
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "item_not_found",
[INFO] [stderr]     "message": "item 'bn-nope' not found",
[INFO] [stderr]     "suggestion": "Check the item ID with 'bn list' or 'bn show'"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stdout] test cmd::feedback::tests::did_nonexistent_item_errors ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-feed1",
[INFO] [stdout]   "action": "did",
[INFO] [stdout]   "agent": "test-agent",
[INFO] [stdout]   "ts": 1781256883
[INFO] [stdout] }
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "missing_agent",
[INFO] [stderr]     "message": "Agent identity required for this command. Set --agent, BONES_AGENT, or AGENT environment variable.",
[INFO] [stderr]     "suggestion": "Set --agent, BONES_AGENT, or AGENT"
[INFO] [stderr]   }
[INFO] [stdout] test cmd::feedback::tests::did_partial_id_resolution ... ok
[INFO] [stderr] }
[INFO] [stdout] test cmd::feedback::tests::did_requires_agent ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-feed1",
[INFO] [stdout]   "action": "did",
[INFO] [stdout]   "agent": "alice",
[INFO] [stdout]   "ts": 1781256883
[INFO] [stdout] }
[INFO] [stdout] test cmd::feedback::tests::did_updates_agent_profile ... ok
[INFO] [stdout] test cmd::feedback::tests::skip_args_parses_id ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-feed1",
[INFO] [stdout]   "action": "skip",
[INFO] [stdout]   "agent": "test-agent",
[INFO] [stdout]   "ts": 1781256883
[INFO] [stdout] }
[INFO] [stdout] test cmd::feedback::tests::skip_appends_feedback_log ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-feed1",
[INFO] [stdout]   "action": "did",
[INFO] [stdout]   "agent": "test-agent",
[INFO] [stdout]   "ts": 1781256883
[INFO] [stdout] }
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "item_not_found",
[INFO] [stderr]     "message": "item 'bn-nope' not found",
[INFO] [stderr]     "suggestion": "Check the item ID with 'bn list' or 'bn show'"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-feed1",
[INFO] [stdout]   "action": "skip",
[INFO] [stdout]   "agent": "test-agent",
[INFO] [stdout]   "ts": 1781256883
[INFO] [stdout] }
[INFO] [stdout] test cmd::feedback::tests::skip_nonexistent_item_errors ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-feed1",
[INFO] [stdout]   "action": "did",
[INFO] [stdout]   "agent": "test-agent",
[INFO] [stdout]   "ts": 1781256883
[INFO] [stdout] }
[INFO] [stdout] test cmd::feedback::tests::multiple_feedback_entries_accumulate ... ok
[INFO] [stdout] test cmd::graph::tests::clap_parses_dot_flag ... ok
[INFO] [stdout] test cmd::graph::tests::clap_parses_mermaid_flag ... ok
[INFO] [stdout] Duplicate check for bn-001 — Authentication timeout regression
[INFO] [stdout] --------------------------------------------------------------------------------------------------
[INFO] [stdout] Thresholds: likely_duplicate >= 85%, possibly_related >= 65%
[INFO] [stdout] No duplicates or related items found.
[INFO] [stdout] test cmd::graph::tests::dot_escapes_special_chars ... ok
[INFO] [stdout] test cmd::dup::tests::run_dup_custom_threshold_excludes_low_matches ... ok
[INFO] [stdout] Duplicate check for bn-001 — Authentication timeout regression
[INFO] [stdout] --------------------------------------------------------------------------------------------------
[INFO] [stdout] Thresholds: likely_duplicate >= 85%, possibly_related >= 65%
[INFO] [stdout] No duplicates or related items found.
[INFO] [stdout] test cmd::graph::tests::dot_summary_renders_all_open_edges ... ok
[INFO] [stdout] test cmd::graph::tests::dot_item_renders_digraph ... ok
[INFO] [stdout] test cmd::graph::tests::graph_args_no_id_defaults ... ok
[INFO] [stdout] test cmd::graph::tests::graph_format_from_args ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-feed1",
[INFO] [stdout]   "action": "skip",
[INFO] [stdout]   "agent": "test-agent",
[INFO] [stdout]   "ts": 1781256883
[INFO] [stdout] }
[INFO] [stdout] test cmd::dup::tests::run_dup_finds_near_duplicate ... ok
[INFO] [stdout] test cmd::graph::tests::graph_args_with_id_and_flags ... ok
[INFO] [stdout] test cmd::graph::tests::graph_summary_collect_edges_helper ... ok
[INFO] [stdout] test cmd::feedback::tests::skip_partial_id_resolution ... ok
[INFO] [stdout] test cmd::graph::tests::mermaid_escapes_quotes ... ok
[INFO] [stdout] test cmd::graph::tests::mermaid_item_renders_graph_td ... ok
[INFO] [stdout] test cmd::graph::tests::mermaid_item_respects_direction_flags ... ok
[INFO] [stdout] test cmd::graph::tests::mermaid_node_id_sanitizes_dots ... ok
[INFO] [stdout] test cmd::graph::tests::mermaid_summary_renders_all_open_edges ... ok
[INFO] [stdout] test cmd::graph::tests::render_tree_depth_limit ... ok
[INFO] [stdout] {
[INFO] [stdout]   "source_id": "bn-001",
[INFO] [stdout]   "source_title": "Authentication timeout regression",
[INFO] [stdout]   "duplicate_threshold": 0.85,
[INFO] [stdout]   "related_threshold": 0.65,
[INFO] [stdout]   "count": 0,
[INFO] [stdout]   "candidates": []
[INFO] [stdout] }
[INFO] [stdout] test cmd::graph::tests::render_tree_empty_graph ... ok
[INFO] [stdout] test cmd::dup::tests::run_dup_json_output ... ok
[INFO] [stdout] test cmd::graph::tests::render_tree_single_edge ... ok
[INFO] [stdout] test cmd::graph::tests::truncate_long_string ... ok
[INFO] [stdout] test cmd::graph::tests::graph_summary_shows_directed_graph ... ok
[INFO] [stdout] test cmd::graph::tests::truncate_short_string ... ok
[INFO] [stdout] test cmd::health::tests::health_args_parse_basic_mode ... ok
[INFO] [stdout] test cmd::health::tests::health_args_parse_no_flags ... ok
[INFO] [stdout] test cmd::import::tests::deterministic_item_id_is_stable ... ok
[INFO] [stdout] test cmd::import::tests::paged_url_appends_query_params ... ok
[INFO] [stdout] test cmd::import::tests::parse_repo_slug_accepts_valid_input ... ok
[INFO] [stdout] test cmd::import::tests::parse_repo_slug_rejects_invalid_input ... ok
[INFO] [stdout] test cmd::graph::tests::graph_summary_empty_project ... ok
[INFO] [stdout] test cmd::import::tests::plan_issue_events_adds_move_for_closed_issue ... ok
[INFO] [stdout] test cmd::health::tests::render_health_human_includes_table ... ok
[INFO] [stdout] test cmd::import::tests::deterministic_item_id_differs_across_repos ... ok
[INFO] [stderr] error: item 'nonexistent' not found
[INFO] [stderr]   suggestion: use `bn list` to see available items
[INFO] [stdout] test cmd::dup::tests::run_dup_missing_item_errors ... ok
[INFO] [stdout] Initialization Complete
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Status:      initialized .bones project structure
[INFO] [stdout] Active shard: .bones/events/2026-06.events
[INFO] [stdout] Config:      .bones/config.toml
[INFO] [stdout] Next Steps
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Initialization Complete
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Status:      initialized .bones project structure
[INFO] [stdout] Active shard: .bones/events/2026-06.events
[INFO] [stdout] Config:      .bones/config.toml
[INFO] [stdout] Next Steps
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Initialization Complete
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Status:      initialized .bones project structure
[INFO] [stdout] Active shard: .bones/events/2026-06.events
[INFO] [stdout] Config:      .bones/config.toml
[INFO] [stdout] Next Steps
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Initialization Complete
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Status:      initialized .bones project structure
[INFO] [stdout] Active shard: .bones/events/2026-06.events
[INFO] [stdout] Config:      .bones/config.toml
[INFO] [stdout] Next Steps
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Duplicate check for bn-001 — Authentication timeout regression
[INFO] [stdout] --------------------------------------------------------------------------------------------------
[INFO] [stdout] Thresholds: likely_duplicate >= 85%, possibly_related >= 65%
[INFO] [stdout] No duplicates or related items found.
[INFO] [stdout] Initialization Complete
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Status:      initialized .bones project structure
[INFO] [stdout] Active shard: .bones/events/2026-06.events
[INFO] [stdout] Config:      .bones/config.toml
[INFO] [stdout] Next Steps
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-feed1",
[INFO] [stdout]   "action": "skip",
[INFO] [stdout]   "agent": "bob",
[INFO] [stdout]   "ts": 1781256883
[INFO] [stdout] }
[INFO] [stdout] test cmd::init::tests::gitignore_covers_derived_files ... ok
[INFO] [stdout] test cmd::init::tests::reinit_with_force_succeeds ... ok
[INFO] [stdout] test cmd::init::tests::init_migrates_legacy_root_gitattributes_entry ... ok
[INFO] [stdout] test cmd::dup::tests::run_dup_partial_id ... ok
[INFO] [stdout] test cmd::init::tests::fresh_init_creates_structure ... ok
[INFO] [stdout] test cmd::labels::tests::labels_args_parses_namespace ... ok
[INFO] [stdout] Initialization Complete
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Status:      initialized .bones project structure
[INFO] [stdout] Active shard: .bones/events/2026-06.events
[INFO] [stdout] Config:      .bones/config.toml
[INFO] [stdout] Next Steps
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Initialization Complete
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Status:      initialized .bones project structure
[INFO] [stdout] Active shard: .bones/events/2026-06.events
[INFO] [stdout] Config:      .bones/config.toml
[INFO] [stdout] Next Steps
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Initialization Complete
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Status:      initialized .bones project structure
[INFO] [stdout] Active shard: .bones/events/2026-06.events
[INFO] [stdout] Config:      .bones/config.toml
[INFO] [stdout] Next Steps
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] test cmd::feedback::tests::skip_updates_agent_profile ... ok
[INFO] [stdout] test cmd::init::tests::shard_name_matches_current_month ... ok
[INFO] [stdout] test cmd::init::tests::reinit_without_force_fails ... ok
[INFO] [stdout] test cmd::init::tests::shard_has_correct_header ... ok
[INFO] [stdout] test cmd::list::tests::list_args_defaults ... ok
[INFO] [stdout] test cmd::list::tests::list_args_parse_all_flag ... ok
[INFO] [stdout] test cmd::list::tests::list_args_all_flags ... ok
[INFO] [stdout] test cmd::list::tests::list_item_json_serializable ... ok
[INFO] [stdout] test cmd::list::tests::list_json_serialization_includes_truncation_advice ... ok
[INFO] [stdout] test cmd::list::tests::list_sort_parses_new_and_legacy_values ... ok
[INFO] [stdout] test cmd::list::tests::parse_datetime_accepts_seconds_micros_and_rfc3339 ... ok
[INFO] [stdout] test cmd::list::tests::list_json_serialization_includes_metadata ... ok
[INFO] [stdout] test cmd::labels::tests::label_add_args_parse ... ok
[INFO] [stdout] test cmd::list::tests::render_list_human_empty ... ok
[INFO] [stdout] test cmd::list::tests::render_list_human_truncates_long_title ... ok
[INFO] [stdout] test cmd::list::tests::render_list_text_shows_header_row ... ok
[INFO] [stdout] test cmd::list::tests::render_list_human_shows_header_and_row ... ok
[INFO] [stdout] test cmd::list::tests::render_list_text_shows_truncation_advice ... ok
[INFO] [stdout] Initialization Complete
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Status:      initialized .bones project structure
[INFO] [stdout] Active shard: .bones/events/2026-06.events
[INFO] [stdout] Config:      .bones/config.toml
[INFO] [stdout] Next Steps
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] test cmd::init::tests::config_toml_has_required_sections ... ok
[INFO] [stdout] test cmd::graph::tests::graph_item_shows_dependencies ... ok
[INFO] [stdout] test cmd::list::tests::build_list_response_supports_since_until ... ok
[INFO] [stdout] (projection not found — run `bn admin rebuild` to initialize)
[INFO] [stdout] test cmd::list::tests::run_list_missing_projection_returns_empty ... ok
[INFO] [stdout] test cmd::list::tests::build_list_response_all_includes_non_open_states ... ok
[INFO] [stdout] test cmd::list::tests::sort_tie_breaks_by_id_for_stability ... ok
[INFO] [stdout] Showing:     1 of 1 bones
[INFO] [stdout] ╭────────┬──────┬───────┬─────────┬──────────┬───────────╮
[INFO] [stdout] │ ID     │ KIND │ STATE │ URGENCY │ ASSIGNED │ TITLE     │
[INFO] [stdout] ├────────┼──────┼───────┼─────────┼──────────┼───────────┤
[INFO] [stdout] │ bn-002 │ bug  │ doing │ urgent  │          │ Doing bug │
[INFO] [stdout] ╰────────┴──────┴───────┴─────────┴──────────┴───────────╯
[INFO] [stdout] test cmd::list::tests::run_list_filter_by_kind ... ok
[INFO] [stdout] test cmd::log::tests::blame_returns_last_writer_for_field ... ok
[INFO] [stdout] No items found.
[INFO] [stdout] Use `bn create --title "..."` to add a new item
[INFO] [stdout] test cmd::list::tests::run_list_empty_returns_no_items_message ... ok
[INFO] [stdout] test cmd::migrate::tests::item_id_mapping_handles_non_terseid_source ... ok
[INFO] [stdout] test cmd::migrate::tests::item_id_mapping_is_stable ... ok
[INFO] [stdout] test cmd::log::tests::history_filters_agent_and_applies_limit ... ok
[INFO] [stdout] test cmd::log::tests::log_filters_by_item_and_orders_ascending ... ok
[INFO] [stdout] test cmd::migrate::tests::item_id_mapping_preserves_custom_prefix ... ok
[INFO] [stdout] test cmd::migrate::tests::item_id_mapping_preserves_bead_ids ... ok
[INFO] [stdout] Showing:     1 of 1 bones
[INFO] [stdout] ╭────────┬──────┬───────┬─────────┬──────────┬───────────────────╮
[INFO] [stdout] │ ID     │ KIND │ STATE │ URGENCY │ ASSIGNED │ TITLE             │
[INFO] [stdout] ├────────┼──────┼───────┼─────────┼──────────┼───────────────────┤
[INFO] [stdout] │ bn-001 │ task │ open  │ default │          │ Open task  [auth] │
[INFO] [stdout] ╰────────┴──────┴───────┴─────────┴──────────┴───────────────────╯
[INFO] [stdout] test cmd::migrate::tests::map_priority_marks_only_p0_as_urgent ... ok
[INFO] [stdout] test cmd::migrate::tests::map_status_and_priority ... ok
[INFO] [stdout] test cmd::migrate::tests::merged_description_appends_extra_fields ... ok
[INFO] [stdout] test cmd::list::tests::run_list_defaults_to_open_items ... ok
[INFO] [stdout] test cmd::migrate::tests::parent_child_dependency_is_detected ... ok
[INFO] [stdout] test cmd::migrate::tests::parse_seconds_to_micros ... ok
[INFO] [stdout] test cmd::mine::tests::build_mine_filter_overrides_assignee ... ok
[INFO] [stdout] test cmd::mine::tests::mine_args_parse_with_list_filters ... ok
[INFO] [stdout] test cmd::move_cmd::tests::emit_parent_event_structure_top_level ... ok
[INFO] [stdout] test cmd::move_cmd::tests::emit_parent_event_structure_with_parent ... ok
[INFO] [stdout] test cmd::move_cmd::tests::move_args_parses ... ok
[INFO] [stdout] test cmd::move_cmd::tests::move_parent_none_case_insensitive ... ok
[INFO] [stdout] test cmd::move_cmd::tests::move_to_top_level ... ok
[INFO] [stdout] test cmd::move_cmd::tests::parent_update_data_structure ... ok
[INFO] [stdout] test cmd::list::tests::build_list_response_includes_pagination_metadata ... ok
[INFO] [stderr] error: invalid --sort value: unknown sort order 'bogus_sort': expected one of priority, created, updated, state
[INFO] [stderr]   suggestion: valid values: priority, created, updated, state
[INFO] [stdout] test cmd::list::tests::run_list_invalid_sort_returns_error ... ok
[INFO] [stdout] {
[INFO] [stdout]   "items": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-001",
[INFO] [stdout]       "title": "Open task",
[INFO] [stdout]       "kind": "task",
[INFO] [stdout]       "state": "open",
[INFO] [stdout]       "urgency": "default",
[INFO] [stdout]       "labels": [
[INFO] [stdout]         "auth"
[INFO] [stdout]       ],
[INFO] [stdout]       "updated_at_us": 2000
[INFO] [stdout]     }
[INFO] [stdout]   ],
[INFO] [stdout]   "total": 1,
[INFO] [stdout]   "showing": 1,
[INFO] [stdout]   "limit": 50,
[INFO] [stdout]   "offset": 0,
[INFO] [stdout]   "has_more": false,
[INFO] [stdout]   "advice": []
[INFO] [stdout] }
[INFO] [stdout] test cmd::list::tests::run_list_json_output_is_object ... ok
[INFO] [stdout] test cmd::move_cmd::tests::validate_goal_kind ... ok
[INFO] [stdout] test cmd::next::tests::display_score_maps_urgent_and_punt ... ok
[INFO] [stdout] test cmd::next::tests::parse_assignment_count_accepts_positive_integer ... ok
[INFO] [stdout] test cmd::next::tests::parse_assignment_count_rejects_zero ... ok
[INFO] [stdout] test cmd::next::tests::score_bar_handles_infinite_scores ... ok
[INFO] [stdout] test cmd::plan::tests::build_scoped_graph_filters_external_edges ... ok
[INFO] [stdout] test cmd::plan::tests::dependency_layers_preserved ... ok
[INFO] [stdout] test cmd::plan::tests::derive_schedule_regime_reports_fallback_for_cycle ... ok
[INFO] [stdout] test cmd::plan::tests::intra_layer_score_ordering ... ok
[INFO] [stdout] test cmd::plan::tests::layer_membership_unchanged ... ok
[INFO] [stdout] test cmd::plan::tests::missing_scores_sort_to_end ... ok
[INFO] [stdout] test cmd::plan::tests::plan_args_parse_explain_flag ... ok
[INFO] [stdout] test cmd::plan::tests::plan_args_parse_goal_id ... ok
[INFO] [stdout] test cmd::plan::tests::render_plan_human_empty_plan ... ok
[INFO] [stdout] test cmd::plan::tests::tiebreak_determinism ... ok
[INFO] [stdout] test cmd::plan::tests::urgent_ready_blocker_first_in_layer ... ok
[INFO] [stdout] test cmd::progress::tests::progress_counts_serialize ... ok
[INFO] [stdout] test cmd::migrate::tests::migrate_uses_parent_child_dependency_as_hierarchy ... ok
[INFO] [stdout] test cmd::progress::tests::render_progress_all_done ... ok
[INFO] [stdout] test cmd::progress::tests::render_progress_basic ... ok
[INFO] [stdout] test cmd::progress::tests::render_progress_empty_children ... ok
[INFO] [stdout] test cmd::progress::tests::render_progress_nested_goals ... ok
[INFO] [stdout] Showing:     1 of 1 bones
[INFO] [stdout] ╭────────┬──────┬───────┬─────────┬──────────┬───────────╮
[INFO] [stdout] │ ID     │ KIND │ STATE │ URGENCY │ ASSIGNED │ TITLE     │
[INFO] [stdout] ├────────┼──────┼───────┼─────────┼──────────┼───────────┤
[INFO] [stdout] │ bn-002 │ bug  │ doing │ urgent  │          │ Doing bug │
[INFO] [stdout] ╰────────┴──────┴───────┴─────────┴──────────┴───────────╯
[INFO] [stdout] test cmd::list::tests::run_list_with_state_filter ... ok
[INFO] [stdout] test cmd::migrate::tests::migrate_moves_legacy_root_gitattributes_entry_into_bones_dir ... ok
[INFO] [stdout] test cmd::reopen::tests::reopen_args_parses_id ... ok
[INFO] [stderr] error: parent 'bn-tsk1' is a task (kind=task), but only goals can contain items.
[INFO] [stderr]   Create a goal first with: bn create --kind goal --title "My Goal"
[INFO] [stdout] test cmd::move_cmd::tests::run_move_rejects_non_goal_parent ... ok
[INFO] [stdout] {
[INFO] [stdout]   "items": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-001",
[INFO] [stdout]       "title": "Mine",
[INFO] [stdout]       "kind": "task",
[INFO] [stdout]       "state": "open",
[INFO] [stdout]       "urgency": "default",
[INFO] [stdout]       "assignees": [
[INFO] [stdout]         "alice"
[INFO] [stdout]       ],
[INFO] [stdout]       "updated_at_us": 1000
[INFO] [stdout]     }
[INFO] [stdout]   ],
[INFO] [stdout]   "total": 1,
[INFO] [stdout]   "showing": 1,
[INFO] [stdout]   "limit": 50,
[INFO] [stdout]   "offset": 0,
[INFO] [stdout]   "has_more": false,
[INFO] [stdout]   "advice": []
[INFO] [stdout] }
[INFO] [stdout] test cmd::mine::tests::run_mine_smoke ... ok
[INFO] [stdout] test cmd::rebuild::tests::rebuild_materializes_semantic_tables ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-goal",
[INFO] [stdout]   "title": "My Goal",
[INFO] [stdout]   "state": "open",
[INFO] [stdout]   "kind": "goal",
[INFO] [stdout]   "progress": {
[INFO] [stdout]     "total": 2,
[INFO] [stdout]     "done": 1,
[INFO] [stdout]     "doing": 0,
[INFO] [stdout]     "open": 1,
[INFO] [stdout]     "blocked": 0,
[INFO] [stdout]     "archived": 0
[INFO] [stdout]   },
[INFO] [stdout]   "children": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-t1",
[INFO] [stdout]       "title": "Task 1",
[INFO] [stdout]       "state": "done",
[INFO] [stdout]       "kind": "task"
[INFO] [stdout]     },
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-t2",
[INFO] [stdout]       "title": "Task 2",
[INFO] [stdout]       "state": "open",
[INFO] [stdout]       "kind": "task"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::progress::tests::progress_smoke_db ... ok
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "not_a_project",
[INFO] [stderr]     "message": "Not a bones project: .bones directory not found",
[INFO] [stderr]     "suggestion": "Run 'bn init' to create a new bones project"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stdout] test cmd::reopen::tests::reopen_not_bones_project ... ok
[INFO] [stdout] Moved bn-tsk1 under parent bn-gol1
[INFO] [stdout] Moved bn-tsk1 under parent bn-gol1
[INFO] [stdout] test cmd::move_cmd::tests::run_move_reparents_task_under_goal ... ok
[INFO] [stdout] test cmd::rebuild::tests::rebuild_reports_semantic_index_as_deferred_after_event_replay ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-reopen1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "done",
[INFO] [stdout]       "new_state": "open",
[INFO] [stdout]       "event_hash": "blake3:bjfarLYTMpkQQ3jJp7sTDkWT4nH48Bs_XX2k1iEd7aE"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-reopen1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "done",
[INFO] [stdout]       "new_state": "open",
[INFO] [stdout]       "event_hash": "blake3:At83a32Vm3ya4Od2M77FWj5GvKDSBIcmMNLgm8rFw6s"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::reopen::tests::reopen_event_carries_reopen_flag ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-reopen1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "archived",
[INFO] [stdout]       "new_state": "open",
[INFO] [stdout]       "event_hash": "blake3:Y7JsR32o1_Em8_XS1NAbS0ZXjLREz_d_21dhgRS-x1M"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-reopen1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "done",
[INFO] [stdout]       "new_state": "open",
[INFO] [stdout]       "event_hash": "blake3:OjlSh8OHVliBbBenVXvKJHgKInOJqfFIkjwga1PCjSM"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-reopen1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "open",
[INFO] [stdout]       "new_state": "done",
[INFO] [stdout]       "event_hash": "blake3:pMklerw4ZNo6jYqbQSvfkBELVlWJPKLksy8Rr1u-5Io"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-reopen1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "done",
[INFO] [stdout]       "new_state": "open",
[INFO] [stdout]       "event_hash": "blake3:3tAUc7tFY08hSOiPChl-_XneapSlkCA9NU36DaLuDfY"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::reopen::tests::reopen_partial_id ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-reopen1",
[INFO] [stdout]       "ok": false,
[INFO] [stdout]       "error": "cannot reopen 'bn-reopen1': item is in progress (doing)"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::reopen::tests::reopen_from_done ... ok
[INFO] [stdout] test cmd::search::tests::filter_semantic_hits_drops_low_confidence_queries ... ok
[INFO] [stdout] test cmd::reopen::tests::reopen_rejects_doing ... ok
[INFO] [stdout] test cmd::search::tests::filter_semantic_hits_keeps_high_confidence_rows ... ok
[INFO] [stdout] test cmd::search::tests::or_fallback_query_builds_or_query_for_plain_multi_term_input ... ok
[INFO] [stdout] test cmd::reopen::tests::reopen_from_archived ... ok
[INFO] [stdout] test cmd::search::tests::or_fallback_query_skips_explicit_fts_syntax ... ok
[INFO] [stdout] test cmd::search::tests::render_search_human_no_results ... ok
[INFO] [stdout] test cmd::search::tests::render_search_human_with_results ... ok
[INFO] [stdout] test cmd::search::tests::render_search_human_shows_limit_hint_when_at_capacity ... ok
[INFO] [stdout] test cmd::search::tests::render_search_text_shows_limit_advice_when_at_capacity ... ok
[INFO] [stdout] test cmd::search::tests::resolve_mode_rejects_conflicting_flags ... ok
[INFO] [stdout] test cmd::search::tests::resolve_mode_selects_expected_mode ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-nonexistent",
[INFO] [stdout]       "ok": false,
[INFO] [stdout]       "error": "item 'bn-nonexistent' not found"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-reopen1",
[INFO] [stdout]       "ok": false,
[INFO] [stdout]       "error": "cannot reopen 'bn-reopen1': item is already open"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-reopen1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "done",
[INFO] [stdout]       "new_state": "open",
[INFO] [stdout]       "event_hash": "blake3:toO3taPBimmJAnwqKSnl6HiwTxYO9jhrWwt4_jCfJk0"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::reopen::tests::reopen_rejects_already_open ... ok
[INFO] [stderr] error: projection database not found
[INFO] [stderr]   suggestion: run `bn admin rebuild` to initialize the projection
[INFO] [stdout] test cmd::search::tests::run_search_missing_projection ... ok
[INFO] [stdout] test cmd::reopen::tests::reopen_rejects_nonexistent_item ... ok
[INFO] [stdout] Moved bn-tsk1 to top level
[INFO] [stdout] test cmd::reopen::tests::reopen_cycle_done_reopen_done_reopen ... ok
[INFO] [stdout] test cmd::search::tests::search_args_parse_layer_flags ... ok
[INFO] [stdout] test cmd::search::tests::search_args_parse_limit ... ok
[INFO] [stdout] test cmd::search::tests::search_args_parse_query ... ok
[INFO] [stdout] test cmd::search::tests::search_output_json_serializable ... ok
[INFO] [stdout] test cmd::show::tests::render_show_human_includes_all_fields ... ok
[INFO] [stdout] test cmd::show::tests::render_show_human_without_optional_fields ... ok
[INFO] [stdout] test cmd::show::tests::render_show_text_comments_include_timestamp ... ok
[INFO] [stdout] test cmd::show::tests::resolve_exact_id ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-reopen1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "previous_state": "done",
[INFO] [stdout]       "new_state": "open",
[INFO] [stdout]       "event_hash": "blake3:MKkIvvRLH0QDmviiJIswcBSN9MhZNF_J7TzLKPJWgiE"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::show::tests::resolve_not_found ... ok
[INFO] [stdout] test cmd::show::tests::resolve_prefix_match ... ok
[INFO] [stdout] test cmd::reopen::tests::reopen_writes_event_to_shard ... ok
[INFO] [stdout] test cmd::show::tests::resolve_prefix_match_with_bn_prefix ... ok
[INFO] [stdout] test cmd::show::tests::resolve_prefix_rejects_ambiguous_matches ... ok
[INFO] [stdout] test cmd::show::tests::resolve_skips_deleted ... ok
[INFO] [stdout] test cmd::move_cmd::tests::run_move_to_top_level ... ok
[INFO] [stdout] test cmd::show::tests::resolve_without_bn_prefix ... ok
[INFO] [stderr] error: projection database not found
[INFO] [stdout] test cmd::show::tests::run_show_missing_projection_returns_error ... ok
[INFO] [stderr]   suggestion: run `bn admin rebuild` to initialize the projection
[INFO] [stdout] 1 result(s) for 'authentication':
[INFO] [stdout] ------------------------------------------------------------------------------------------
[INFO] [stdout] ID                STATE        SCORE  TITLE
[INFO] [stdout] ------------------------------------------------------------------------------------------
[INFO] [stdout] bn-001            open         0.016  Authentication timeout regression
[INFO] [stderr] error: search query must not be empty
[INFO] [stderr]   suggestion: provide a non-empty query string
[INFO] [stdout] bn-xyz789: Auth bug
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] kind:        bug
[INFO] [stdout] state:       open
[INFO] [stdout] urgency:     urgent
[INFO] [stdout] labels:      backend
[INFO] [stdout] 
[INFO] [stdout] Description
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Details here.
[INFO] [stdout] 
[INFO] [stdout] Comments (1)
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] [1970-01-01 00:00:00] alice:
[INFO] [stdout] Investigating.
[INFO] [stdout] test cmd::search::tests::run_search_empty_query_errors ... ok
[INFO] [stdout] test cmd::search::tests::run_search_finds_results ... ok
[INFO] [stdout] test cmd::show::tests::run_show_exact_id ... ok
[INFO] [stdout] test cmd::show::tests::show_args_parses_id ... ok
[INFO] [stdout] test cmd::show::tests::show_item_json_serializable ... ok
[INFO] [stdout] test cmd::show::tests::timeline_comments_sorted_oldest_first ... ok
[INFO] [stdout] test cmd::similar::tests::rank_to_score_absent_is_zero ... ok
[INFO] [stdout] test cmd::similar::tests::rank_to_score_higher_rank_lower_score ... ok
[INFO] [stderr] error: item 'nonexistent' not found
[INFO] [stdout] test cmd::similar::tests::rank_to_score_rank_1 ... ok
[INFO] [stderr]   suggestion: use `bn list` to see available items
[INFO] [stdout] test cmd::similar::tests::rank_to_score_rank_2 ... ok
[INFO] [stdout] test cmd::similar::tests::render_similar_human_no_results ... ok
[INFO] [stdout] test cmd::similar::tests::render_similar_human_shows_scores ... ok
[INFO] [stdout] test cmd::similar::tests::render_similar_human_with_results ... ok
[INFO] [stdout] test cmd::similar::tests::results_sorted_by_score_descending ... ok
[INFO] [stdout] {
[INFO] [stdout]   "id": "bn-xyz789",
[INFO] [stdout]   "title": "Auth bug",
[INFO] [stdout]   "description": "Details here.",
[INFO] [stdout]   "kind": "bug",
[INFO] [stdout]   "state": "open",
[INFO] [stdout]   "urgency": "urgent",
[INFO] [stdout]   "labels": [
[INFO] [stdout]     "backend"
[INFO] [stdout]   ],
[INFO] [stdout]   "assignees": [],
[INFO] [stdout]   "depends_on": [],
[INFO] [stdout]   "dependents": [],
[INFO] [stdout]   "comments": [
[INFO] [stdout]     {
[INFO] [stdout]       "author": "alice",
[INFO] [stdout]       "body": "Investigating.",
[INFO] [stdout]       "created_at_us": 200
[INFO] [stdout]     }
[INFO] [stdout]   ],
[INFO] [stdout]   "created_at_us": 500,
[INFO] [stdout]   "updated_at_us": 1000
[INFO] [stdout] }
[INFO] [stdout] test cmd::show::tests::run_show_not_found_returns_error ... ok
[INFO] [stdout] test cmd::show::tests::run_show_json_output ... ok
[INFO] [stdout] No results for 'zzznomatch'
[INFO] [stdout] Try broader terms or use prefix search (example: 'auth*')
[INFO] [stdout] {
[INFO] [stdout]   "query": "auth",
[INFO] [stdout]   "limit": 10,
[INFO] [stdout]   "count": 1,
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-001",
[INFO] [stdout]       "title": "Authentication timeout regression",
[INFO] [stdout]       "score": 0.016393441706895828,
[INFO] [stdout]       "state": "open"
[INFO] [stdout]     }
[INFO] [stdout]   ],
[INFO] [stdout]   "fallback_query": null
[INFO] [stdout] }
[INFO] [stdout] test cmd::search::tests::run_search_no_results ... ok
[INFO] [stdout] test cmd::similar::tests::run_similar_missing_projection_errors ... ok
[INFO] [stderr] error: projection database not found
[INFO] [stderr]   suggestion: run `bn admin rebuild` to initialize the projection
[INFO] [stdout] test cmd::search::tests::run_search_json_output ... ok
[INFO] [stdout] 1 result(s) for 'auth*':
[INFO] [stdout] ------------------------------------------------------------------------------------------
[INFO] [stdout] ID                STATE        SCORE  TITLE
[INFO] [stdout] ------------------------------------------------------------------------------------------
[INFO] [stdout] bn-001            open         0.016  Authentication timeout regression
[INFO] [stdout] test cmd::search::tests::run_search_prefix_query ... ok
[INFO] [stdout] bn-xyz789: Auth bug
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] kind:        bug
[INFO] [stdout] state:       open
[INFO] [stdout] urgency:     urgent
[INFO] [stdout] labels:      backend
[INFO] [stdout] 
[INFO] [stdout] Description
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Details here.
[INFO] [stdout] 
[INFO] [stdout] Comments (1)
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] [1970-01-01 00:00:00] alice:
[INFO] [stdout] Investigating.
[INFO] [stdout] bn-xyz789: Auth bug
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] kind:        bug
[INFO] [stdout] state:       open
[INFO] [stdout] urgency:     urgent
[INFO] [stdout] labels:      backend
[INFO] [stdout] 
[INFO] [stdout] Description
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] Details here.
[INFO] [stdout] 
[INFO] [stdout] Comments (1)
[INFO] [stdout] ------------------------------------------------------------------------
[INFO] [stdout] [1970-01-01 00:00:00] alice:
[INFO] [stdout] Investigating.
[INFO] [stdout] test cmd::show::tests::run_show_prefix_partial_id ... ok
[INFO] [stdout] test cmd::show::tests::run_show_partial_id ... ok
[INFO] [stdout] test cmd::similar::tests::similar_args_parse_limit_long ... ok
[INFO] [stdout] test cmd::similar::tests::similar_args_parse_id ... ok
[INFO] [stdout] test cmd::similar::tests::similar_args_parse_limit_short ... ok
[INFO] [stdout] test cmd::similar::tests::similar_output_json_schema ... ok
[INFO] [stdout] test cmd::status::tests::count_blocked_items_empty_db ... ok
[INFO] [stdout] {
[INFO] [stdout]   "agent": "test-agent",
[INFO] [stdout]   "assigned": [],
[INFO] [stdout]   "project": {
[INFO] [stdout]     "open": 0,
[INFO] [stdout]     "doing": 0,
[INFO] [stdout]     "done": 0,
[INFO] [stdout]     "archived": 0,
[INFO] [stdout]     "blocked": 0
[INFO] [stdout]   }
[INFO] [stdout] }
[INFO] [stdout] test cmd::status::tests::status_empty_project ... ok
[INFO] [stdout] test cmd::status::tests::status_human_render ... ok
[INFO] [stdout] test cmd::status::tests::status_no_agent ... ok
[INFO] [stdout] test cmd::status::tests::count_blocked_items_with_deps ... ok
[INFO] [stdout] test cmd::tag::tests::emit_labels_event_data_structure ... ok
[INFO] [stdout] test cmd::tag::tests::normalize_label_lowercases_and_hyphenates_spaces ... ok
[INFO] [stdout] test cmd::tag::tests::normalize_label_rejects_bad_namespace_and_slash ... ok
[INFO] [stdout] ✓ bn-tst1: added bug, urgent → labels: bug, initial, urgent
[INFO] [stderr] error: item 'nonexistent-xyz' not found
[INFO] [stderr]   suggestion: use `bn list` to see available items
[INFO] [stdout] {
[INFO] [stdout]   "source_id": "bn-001",
[INFO] [stdout]   "source_title": "Authentication timeout regression",
[INFO] [stdout]   "count": 1,
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-002",
[INFO] [stdout]       "title": "Authentication timeout regression",
[INFO] [stdout]       "score": 0.983871,
[INFO] [stdout]       "lexical_score": 0.016129032,
[INFO] [stdout]       "semantic_score": 0.0,
[INFO] [stdout]       "structural_score": 0.016129032
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::similar::tests::run_similar_missing_item_errors ... ok
[INFO] [stdout] ✗ bn-a7x: projection database not found or corrupt at /tmp/.tmpFBl1nr/.bones/bones.db.
[INFO] [stdout]   Run `bn admin rebuild` to initialize it.
[INFO] [stdout] test cmd::similar::tests::run_similar_json_output ... ok
[INFO] [stdout] test cmd::tag::tests::run_tag_fails_on_missing_db ... ok
[INFO] [stdout] {
[INFO] [stdout]   "agent": "test-agent",
[INFO] [stdout]   "assigned": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-001",
[INFO] [stdout]       "title": "Task A",
[INFO] [stdout]       "state": "doing",
[INFO] [stdout]       "urgency": "default"
[INFO] [stdout]     }
[INFO] [stdout]   ],
[INFO] [stdout]   "project": {
[INFO] [stdout]     "open": 1,
[INFO] [stdout]     "doing": 1,
[INFO] [stdout]     "done": 1,
[INFO] [stdout]     "archived": 0,
[INFO] [stdout]     "blocked": 0
[INFO] [stdout]   }
[INFO] [stdout] }
[INFO] [stdout] test cmd::status::tests::status_with_items ... ok
[INFO] [stdout] test cmd::tag::tests::run_tag_adds_labels_to_item ... ok
[INFO] [stdout] Similar to: bn-001 — Authentication timeout regression
[INFO] [stdout] Results: 1
[INFO] [stdout] ------------------------------------------------------------------------------------------------
[INFO] [stdout] RANK  ID                  SCORE      LEX      SEM      STR  TITLE
[INFO] [stdout] ------------------------------------------------------------------------------------------------
[INFO] [stdout]    1  bn-002              0.984    0.016    0.000    0.016  Authentication timeout regression
[INFO] [stdout] test cmd::tag::tests::tag_args_parses ... ok
[INFO] [stdout] test cmd::tag::tests::tag_deduplicates_labels ... ok
[INFO] [stdout] test cmd::tag::tests::tag_idempotent_same_labels ... ok
[INFO] [stdout] test cmd::tag::tests::untag_all_labels_produces_empty ... ok
[INFO] [stdout] test cmd::similar::tests::run_similar_respects_limit ... ok
[INFO] [stdout] test cmd::tag::tests::untag_missing_labels_idempotent ... ok
[INFO] [stdout] Similar to: bn-001 — Authentication timeout regression
[INFO] [stdout] Results: 1
[INFO] [stdout] ------------------------------------------------------------------------------------------------
[INFO] [stdout] RANK  ID                  SCORE      LEX      SEM      STR  TITLE
[INFO] [stdout] ------------------------------------------------------------------------------------------------
[INFO] [stdout]    1  bn-002              0.984    0.016    0.000    0.016  Authentication timeout regression
[INFO] [stdout] test cmd::tag::tests::untag_removes_specified_labels ... ok
[INFO] [stdout] test cmd::tag::tests::untag_args_parses ... ok
[INFO] [stdout] test cmd::triage::tests::actionable_blockers_separated_from_blocked_hubs ... ok
[INFO] [stdout] test cmd::triage::tests::build_rows_emits_expected_sections ... ok
[INFO] [stdout] test cmd::triage::tests::recommendable_filter_excludes_goals ... ok
[INFO] [stdout] test cmd::triage::tests::render_triage_text_includes_table_headers ... ok
[INFO] [stdout] test cmd::triage::tests::small_size_classifier_matches_expected_values ... ok
[INFO] [stdout] test cmd::similar::tests::run_similar_partial_id ... ok
[INFO] [stdout] Similar to: bn-001 — Authentication timeout regression
[INFO] [stdout] Results: 1
[INFO] [stdout] ------------------------------------------------------------------------------------------------
[INFO] [stdout] RANK  ID                  SCORE      LEX      SEM      STR  TITLE
[INFO] [stdout] ------------------------------------------------------------------------------------------------
[INFO] [stdout]    1  bn-002              0.984    0.016    0.000    0.016  Authentication timeout regression
[INFO] [stdout] test cmd::similar::tests::run_similar_self_excluded ... ok
[INFO] [stdout] test cmd::triage_support::tests::children_of_blocked_goal_are_excluded_from_unblocked ... ok
[INFO] [stdout] test cmd::triage_support::tests::blocked_items_are_excluded_from_unblocked_ranked ... ok
[INFO] [stdout] ✗ bn-tst9: item not found: bn-tst9
[INFO] [stdout] test cmd::tag::tests::run_tag_fails_on_nonexistent_item ... ok
[INFO] [stdout] test cmd::triage_support::tests::children_of_punted_goal_are_excluded_from_unblocked ... ok
[INFO] [stdout] ✓ bn-tst1: added a, b → labels: a, b, initial
[INFO] [stdout] test cmd::triage_support::tests::deeply_nested_children_inherit_blocked_from_grandparent ... ok
[INFO] [stdout] test cmd::triage_support::tests::explanation_includes_urgent_item_ids ... ok
[INFO] [stdout] test cmd::triage_support::tests::done_and_archived_items_are_excluded_from_ranked_view ... ok
[INFO] [stdout] test cmd::triage_support::tests::deterministic_tiebreaker_for_equal_scores ... ok
[INFO] [stdout] test cmd::triage_support::tests::large_task_with_children_is_not_penalized ... ok
[INFO] [stdout] test cmd::triage_support::tests::large_goal_is_not_penalized ... ok
[INFO] [stdout] Similar to: bn-010 — [Phase 2] Auth service goal: callback timeout
[INFO] [stdout] Results: 1
[INFO] [stdout] ------------------------------------------------------------------------------------------------
[INFO] [stdout] RANK  ID                  SCORE      LEX      SEM      STR  TITLE
[INFO] [stdout] ------------------------------------------------------------------------------------------------
[INFO] [stdout]    1  bn-011              0.984    0.016    0.000    0.016  Auth callback timeout in phase 2
[INFO] [stdout] ✓ bn-tst1: labels unchanged (all already present): initial
[INFO] [stdout] test cmd::similar::tests::run_similar_handles_titles_with_punctuation ... ok
[INFO] [stdout] test cmd::triage_support::tests::large_task_without_children_gets_score_penalty ... ok
[INFO] [stdout] test cmd::triage_support::tests::multi_hop_pressure_is_monotonically_decreasing ... ok
[INFO] [stdout] test cmd::triage_support::tests::needs_decomposition_lists_large_tasks_without_children ... ok
[INFO] [stdout] test cmd::triage_support::tests::no_propagation_from_done_items ... ok
[INFO] [stdout] test cmd::undo::tests::undo_args_dry_run ... ok
[INFO] [stdout] test cmd::undo::tests::undo_args_event_hash ... ok
[INFO] [stdout] test cmd::triage_support::tests::urgent_blocked_item_boosts_ready_blocker_priority ... ok
[INFO] [stdout] ✓ bn-tst1: removed a → labels: b, initial
[INFO] [stdout] test cmd::undo::tests::undo_args_item_id_only ... ok
[INFO] [stdout] test cmd::undo::tests::undo_args_with_last ... ok
[INFO] [stdout] test cmd::triage_support::tests::punted_goal_excluded_from_punt_suppressed_set ... ok
[INFO] [stdout] test cmd::triage_support::tests::urgent_chain_depth_cap_limits_propagation ... ok
[INFO] [stdout] test cmd::triage_support::tests::urgent_chain_pressure_decays_with_distance ... ok
[INFO] [stdout] test cmd::triage_support::tests::urgent_items_rank_above_default ... ok
[INFO] [stdout] test cmd::tag::tests::run_tag_is_idempotent ... ok
[INFO] [stdout] test cmd::update::tests::update_args_parse_multiple_fields ... ok
[INFO] [stdout] test cmd::update::tests::update_args_parse_title ... ok
[INFO] [stdout] test cmd::undo::tests::undo_requires_id_or_event ... ok
[INFO] [stdout] {
[INFO] [stdout]   "item_id": "bn-undo1",
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "original_hash": "blake3:-s90F1Ci7LXeVPSRmNLfpYZxMB-uKs6r35kt5ZatzxM",
[INFO] [stdout]       "original_type": "item.move",
[INFO] [stdout]       "compensating_hash": "blake3:uH7gSq207pLi6eVg60hXp1f5CMd8Fgiz6_881KP4A2Q",
[INFO] [stdout]       "compensating_type": "item.move",
[INFO] [stdout]       "skipped": false,
[INFO] [stdout]       "dry_run": true
[INFO] [stdout]     }
[INFO] [stdout]   ],
[INFO] [stdout]   "dry_run": true
[INFO] [stdout] }
[INFO] [stdout] test cmd::undo::tests::undo_last_event_dry_run ... ok
[INFO] [stdout] test cmd::undo::tests::undo_fails_for_missing_item ... ok
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "missing_args",
[INFO] [stderr]     "message": "either an item ID or --event <hash> must be provided",
[INFO] [stderr]     "suggestion": "Usage: bn undo <item-id>  OR  bn undo --event <hash>"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "not_found",
[INFO] [stderr]     "message": "item 'bn-nonexistent' not found or has no events",
[INFO] [stderr]     "suggestion": ""
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "not_a_project",
[INFO] [stderr]     "message": "Not a bones project: .bones directory not found",
[INFO] [stderr]     "suggestion": "Run 'bn init' to create a new bones project"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stdout] test cmd::update::tests::update_not_bones_project ... ok
[INFO] [stdout] test cmd::tag::tests::run_untag_removes_labels ... ok
[INFO] [stdout] {
[INFO] [stdout]   "item_id": "bn-undo1",
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "original_hash": "blake3:nF8PcB6urvNAXTA1Kdqucu0giu3sWPmwLslQHvXl5Wc",
[INFO] [stdout]       "original_type": "item.move",
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "secret_detected",
[INFO] [stderr]     "message": "invalid title '<redacted>': contains a high-confidence secret pattern (github_token)",
[INFO] [stderr]     "suggestion": "remove credentials from text or pass --allow-secret to override intentionally"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stdout]       "compensating_hash": "blake3:kKZuri_wW-9fnJlezikXdIQEurpR9ssdSo1CaRA36w4",
[INFO] [stdout]       "compensating_type": "item.move",
[INFO] [stdout]       "skipped": false,
[INFO] [stdout]       "dry_run": false
[INFO] [stdout]     }
[INFO] [stdout]   ],
[INFO] [stdout]   "dry_run": false
[INFO] [stdout] }
[INFO] [stdout] test cmd::update::tests::update_blocks_secret_like_text_without_override ... ok
[INFO] [stdout] test cmd::undo::tests::undo_last_event_emits_compensating ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "updates": [
[INFO] [stdout]         {
[INFO] [stdout]           "field": "title",
[INFO] [stdout]           "value": "Replay-stable title",
[INFO] [stdout]           "event_hash": "blake3:lLt5Vgib41dPNZdFUFMNHfBwmtj4sJdyTa5b55dfQ0Y"
[INFO] [stdout]         }
[INFO] [stdout]       ]
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "updates": [
[INFO] [stdout]         {
[INFO] [stdout]           "field": "title",
[INFO] [stdout]           "value": "ghp_abcdefghijklmnopqrstuvwxyz012345",
[INFO] [stdout]           "event_hash": "blake3:RU-MBGNMLT86sQV6BUNcsMlrHHo8udQ9PqNKWKUOITk"
[INFO] [stdout]         }
[INFO] [stdout]       ]
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::update::tests::update_allows_secret_like_text_with_override ... ok
[INFO] [stdout] {
[INFO] [stderr] {
[INFO] [stdout]   "results": [
[INFO] [stderr]   "error": {
[INFO] [stdout]     {
[INFO] [stderr]     "error_code": "empty_title",
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stderr]     "message": "title cannot be empty",
[INFO] [stdout]       "ok": true,
[INFO] [stderr]     "suggestion": "Provide a non-empty title"
[INFO] [stdout]       "updates": [
[INFO] [stderr]   }
[INFO] [stdout]         {
[INFO] [stderr] }
[INFO] [stdout]           "field": "kind",
[INFO] [stderr] {
[INFO] [stdout]           "value": "bug",
[INFO] [stderr]   "error": {
[INFO] [stdout]           "event_hash": "blake3:lIEkYZWAGBSQEYH5Kn8gopYe0tIEJsA7UY8yQGVKT9k"
[INFO] [stderr]     "error_code": "invalid_size",
[INFO] [stdout]         }
[INFO] [stderr]     "message": "invalid size 'huge': expected xs|s|m|l|xl",
[INFO] [stdout]       ]
[INFO] [stderr]     "suggestion": "Valid sizes: xs s m l xl"
[INFO] [stdout]     }
[INFO] [stderr]   }
[INFO] [stdout]   ]
[INFO] [stderr] }
[INFO] [stdout] }
[INFO] [stderr] {
[INFO] [stdout] test cmd::update::tests::update_events_survive_replay ... ok
[INFO] [stderr]   "error": {
[INFO] [stdout] test cmd::update::tests::update_rejects_invalid_size ... ok
[INFO] [stderr]     "error_code": "invalid_kind",
[INFO] [stdout] {
[INFO] [stderr]     "message": "invalid kind 'chore': expected task|bug|goal",
[INFO] [stdout]   "results": [
[INFO] [stderr]     "suggestion": "Valid kinds: task bug goal"
[INFO] [stdout]     {
[INFO] [stderr]   }
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stderr] }
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "updates": [
[INFO] [stdout]         {
[INFO] [stdout]           "field": "title",
[INFO] [stdout]           "value": "New title",
[INFO] [stdout]           "event_hash": "blake3:srJkEOnPZO1pcauJ29AdTKSZvp4Hvn5xUh1_HLnrlGQ"
[INFO] [stdout]         },
[INFO] [stdout]         {
[INFO] [stdout]           "field": "description",
[INFO] [stdout]           "value": "New description",
[INFO] [stdout]           "event_hash": "blake3:jRsWfbGnBBmmByvy6Lq15_GX-b8QL5tLEz0xMadFJ_k"
[INFO] [stdout]         },
[INFO] [stdout]         {
[INFO] [stdout]           "field": "size",
[INFO] [stdout]           "value": "l",
[INFO] [stdout]           "event_hash": "blake3:dfBilLKD5R-VXKWUhPJalroqOTvpxRu7H60S-aV_bAA"
[INFO] [stdout]         }
[INFO] [stdout]       ]
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test cmd::update::tests::update_rejects_invalid_kind ... ok
[INFO] [stdout] test cmd::update::tests::update_kind ... ok
[INFO] [stdout] test cmd::update::tests::update_rejects_empty_title ... ok
[INFO] [stdout] test cmd::urgency::tests::update_args_only_sets_urgency_field ... ok
[INFO] [stdout] test cmd::urgency::tests::urgency_quick_args_parse_multiple_ids ... ok
[INFO] [stdout] test cmd::warm_search::tests::text_renderer_includes_core_fields ... ok
[INFO] [stdout] test git::hooks::tests::generate_post_merge_hook_includes_fallback ... ok
[INFO] [stdout] test git::hooks::tests::generate_pre_commit_hook_runs_staged_verify ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "updates": [
[INFO] [stdout]         {
[INFO] [stdout]           "field": "title",
[INFO] [stdout]           "value": "Via partial ID",
[INFO] [stdout]           "event_hash": "blake3:7KUkbGUP51Q2WgFmYD88TbugkSIt_-JychB3pODrO70"
[INFO] [stdout]         }
[INFO] [stdout]       ]
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test git::hooks::tests::validate_staged_event_file_accepts_valid_lines ... ok
[INFO] [stdout] test git::hooks::tests::validate_staged_event_file_reports_invalid_tsjson ... ok
[INFO] [stdout] test git::merge_driver::tests::merge_all_empty_produces_valid_shard ... ok
[INFO] [stdout] test git::merge_driver::tests::merge_deduplicates_shared_events ... ok
[INFO] [stdout] test git::merge_driver::tests::merge_disjoint_shards ... ok
[INFO] [stdout] test cmd::update::tests::update_multiple_fields_emits_separate_events ... ok
[INFO] [stdout] test cmd::update::tests::update_partial_id_resolution ... ok
[INFO] [stderr] {
[INFO] [stdout] test git::merge_driver::tests::merge_nonempty_ours_with_empty_theirs ... ok
[INFO] [stderr]   "error": {
[INFO] [stdout] test cmd::update::tests::update_rejects_invalid_urgency ... ok
[INFO] [stderr]     "error_code": "invalid_urgency",
[INFO] [stdout] test git::merge_driver::tests::merge_is_idempotent ... ok
[INFO] [stderr]     "message": "invalid urgency 'super-urgent': expected punt|default|urgent",
[INFO] [stdout] test git::merge_driver::tests::missing_base_returns_error ... ok
[INFO] [stderr]     "suggestion": "Valid urgencies: punt default urgent"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stderr] error: Error: Item 'abc' not found
[INFO] [stdout] test git::merge_driver::tests::missing_theirs_returns_error ... ok
[INFO] [stderr] Cause: No item with this ID exists in the project
[INFO] [stdout] test git::merge_driver::tests::merge_empty_ours_with_nonempty_theirs ... ok
[INFO] [stderr] Fix: Check the ID and try again. Use `bn list` to see all items. Use a longer prefix if the ID is ambiguous.
[INFO] [stdout] test git::merge_driver::tests::merged_output_has_shard_header ... ok
[INFO] [stderr]   suggestion: Check the ID and try again. Use `bn list` to see all items.
[INFO] [stdout] test git::merge_driver::tests::merge_preserves_sort_order_by_timestamp ... ok
[INFO] [stderr] error: bad input
[INFO] [stdout] test output::tests::cli_error_from_bones_error ... ok
[INFO] [stderr]   suggestion: try again
[INFO] [stdout] test output::tests::cli_error_simple ... ok
[INFO] [stderr] {
[INFO] [stdout] test output::tests::cli_error_with_details ... ok
[INFO] [stderr]   "error": {
[INFO] [stdout] test output::tests::output_mode_is_json ... ok
[INFO] [stderr]     "error_code": "bad_input",
[INFO] [stdout] test itc_state::tests::next_itc_persists_and_increments ... ok
[INFO] [stderr]     "message": "bad input",
[INFO] [stdout] test output::tests::render_bones_error_human ... ok
[INFO] [stderr]     "suggestion": "try again"
[INFO] [stdout] test output::tests::render_error_human ... ok
[INFO] [stderr]   }
[INFO] [stdout] test output::tests::render_error_json ... ok
[INFO] [stderr] }
[INFO] [stdout] test output::tests::render_error_table_falls_back_to_human ... ok
[INFO] [stderr] error: table error
[INFO] [stdout] test output::tests::output_mode_pretty_and_text ... ok
[INFO] [stderr] {
[INFO] [stdout] test output::tests::render_item_pretty ... ok
[INFO] [stderr]   "error": {
[INFO] [stdout] test output::tests::render_item_text ... ok
[INFO] [stderr]     "error_code": "E2001",
[INFO] [stdout] {
[INFO] [stderr]     "message": "Error: Item 'abc' not found\nCause: No item with this ID exists in the project\nFix: Check the ID and try again. Use `bn list` to see all items. Use a longer prefix if the ID is ambiguous.",
[INFO] [stdout]   "name": "test",
[INFO] [stderr]     "suggestion": "Check the ID and try again. Use `bn list` to see all items."
[INFO] [stdout]   "count": 42
[INFO] [stderr]   }
[INFO] [stdout] }
[INFO] [stderr] }
[INFO] [stdout] test output::tests::render_json_output ... ok
[INFO] [stdout] test output::tests::render_list_human_multiple ... ok
[INFO] [stdout] test output::tests::render_list_json_empty ... ok
[INFO] [stdout] test output::tests::render_list_table_headers ... ok
[INFO] [stdout] ✓ it worked
[INFO] [stdout] test output::tests::render_success_human ... ok
[INFO] [stdout] {
[INFO] [stdout]   "message": "it worked",
[INFO] [stdout]   "ok": true
[INFO] [stdout] }
[INFO] [stdout] test output::tests::render_success_json ... ok
[INFO] [stdout] ✓ it worked
[INFO] [stdout] test output::tests::render_success_table_falls_back_to_human ... ok
[INFO] [stdout] val=99
[INFO] [stdout] test output::tests::render_table_falls_back_to_human ... ok
[INFO] [stdout] test output::tests::resolve_default_no_tty_is_text ... ok
[INFO] [stdout] test output::tests::resolve_default_tty_is_pretty ... ok
[INFO] [stdout] test output::tests::resolve_format_env_case_insensitive ... ok
[INFO] [stdout] test output::tests::resolve_format_env_json ... ok
[INFO] [stdout] test output::tests::resolve_format_env_pretty ... ok
[INFO] [stdout] test output::tests::resolve_format_env_text ... ok
[INFO] [stdout] test output::tests::resolve_format_env_unknown_falls_through_to_tty ... ok
[INFO] [stdout] test output::tests::resolve_format_flag_wins_over_json_and_env ... ok
[INFO] [stdout] test output::tests::resolve_json_flag_wins_over_env ... ok
[INFO] [stdout] test output::tests::table_headers_returns_expected ... ok
[INFO] [stdout] test output::tests::render_bones_error_json ... ok
[INFO] [stdout] Name: test
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-nonexistent",
[INFO] [stdout]       "ok": false,
[INFO] [stdout]       "error": "item 'bn-nonexistent' not found"
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test output::tests::render_human_output ... ok
[INFO] [stdout] test output::tests::render_item_json ... ok
[INFO] [stderr] {
[INFO] [stderr]   "error": {
[INFO] [stderr]     "error_code": "no_fields",
[INFO] [stderr]     "message": "no fields specified: use --title, --description, --size, --urgency, or --kind",
[INFO] [stderr]     "suggestion": "Specify at least one field to update"
[INFO] [stderr]   }
[INFO] [stderr] }
[INFO] [stdout] test tests::admin_group_subcommand_parses ... ok
[INFO] [stdout] test tests::admin_warm_search_subcommand_parses ... ok
[INFO] [stdout] test tests::agent_flag_none_by_default ... ok
[INFO] [stdout] test cmd::update::tests::update_rejects_nonexistent_item ... ok
[INFO] [stdout] test tests::agents_subcommand_parses ... ok
[INFO] [stdout] test tests::agent_flag_parsed ... ok
[INFO] [stdout] test tests::bone_group_subcommand_parses ... ok
[INFO] [stdout] test tests::archive_subcommand_parses ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "updates": [
[INFO] [stdout]         {
[INFO] [stdout]           "field": "title",
[INFO] [stdout]           "value": "Updated title",
[INFO] [stdout]           "event_hash": "blake3:6SgPDLEh-smo-uIoGAqM3kMUfNlC9V4okHu8gMo9wik"
[INFO] [stdout]         }
[INFO] [stdout]       ]
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test tests::blame_subcommand_parses ... ok
[INFO] [stdout] test cmd::update::tests::update_rejects_no_fields ... ok
[INFO] [stdout] test tests::assign_subcommand_parses ... ok
[INFO] [stdout] test tests::close_subcommand_parses ... ok
[INFO] [stdout] test tests::close_subcommand_parses_with_reason ... ok
[INFO] [stdout] test cmd::update::tests::update_title ... ok
[INFO] [stdout] test tests::comments_subcommand_parses ... ok
[INFO] [stdout] test tests::create_from_file_subcommand_parses ... ok
[INFO] [stdout] test tests::comment_subcommand_parses ... ok
[INFO] [stdout] test tests::completions_subcommand_parses ... ok
[INFO] [stdout] test tests::bone_urgency_shortcuts_parse ... ok
[INFO] [stdout] test tests::config_subcommand_parses ... ok
[INFO] [stdout] test tests::dedup_subcommand_parses ... ok
[INFO] [stdout] test tests::create_subcommand_parses ... ok
[INFO] [stdout] test tests::delete_subcommand_parses ... ok
[INFO] [stdout] test tests::dev_group_subcommand_parses ... ok
[INFO] [stdout] test tests::cycles_subcommand_parses ... ok
[INFO] [stdout] test tests::diagnose_subcommand_parses ... ok
[INFO] [stdout] test tests::data_group_subcommand_parses ... ok
[INFO] [stdout] test tests::default_output_uses_auto_detection ... ok
[INFO] [stdout] test tests::did_accepts_agent_flag ... ok
[INFO] [stdout] test tests::did_subcommand_parses ... ok
[INFO] [stdout] test tests::done_subcommand_parses ... ok
[INFO] [stdout] test tests::do_subcommand_parses ... ok
[INFO] [stdout] test tests::dup_subcommand_parses ... ok
[INFO] [stdout] test tests::format_flag_sets_output_mode ... ok
[INFO] [stdout] test tests::format_json_sets_output_mode ... ok
[INFO] [stdout] test tests::json_flag_sets_output_mode ... ok
[INFO] [stdout] test tests::json_flag_after_subcommand ... ok
[INFO] [stdout] test tests::label_subcommand_parses ... ok
[INFO] [stdout] test tests::list_subcommand_parses ... ok
[INFO] [stdout] test tests::log_subcommand_parses ... ok
[INFO] [stdout] test tests::mine_subcommand_parses ... ok
[INFO] [stdout] test tests::history_subcommand_parses ... ok
[INFO] [stdout] test tests::move_subcommand_parses ... ok
[INFO] [stdout] test tests::health_subcommand_parses ... ok
[INFO] [stdout] test tests::labels_subcommand_parses ... ok
[INFO] [stdout] test tests::plan_subcommand_parses ... ok
[INFO] [stdout] test tests::next_subcommand_parses ... ok
[INFO] [stdout] test tests::quiet_flag_parsed ... ok
[INFO] [stdout] test tests::reopen_subcommand_parses ... ok
[INFO] [stdout] test tests::read_only_commands_work_without_agent ... ok
[INFO] [stdout] test tests::skip_accepts_agent_flag ... ok
[INFO] [stdout] test tests::next_supports_positional_count ... ok
[INFO] [stdout] test tests::show_subcommand_parses ... ok
[INFO] [stdout] {
[INFO] [stdout]   "results": [
[INFO] [stdout]     {
[INFO] [stdout]       "id": "bn-test1",
[INFO] [stdout]       "ok": true,
[INFO] [stdout]       "updates": [
[INFO] [stdout]         {
[INFO] [stdout]           "field": "urgency",
[INFO] [stdout]           "value": "urgent",
[INFO] [stdout]           "event_hash": "blake3:d6S9cKKDV7ztGmPuJaxg4ffoC-S_vqy7YreBCqbWzVc"
[INFO] [stdout]         }
[INFO] [stdout]       ]
[INFO] [stdout]     }
[INFO] [stdout]   ]
[INFO] [stdout] }
[INFO] [stdout] test tests::skip_subcommand_parses ... ok
[INFO] [stdout] test tests::timing_flag_parses_after_subcommand ... ok
[INFO] [stdout] test tests::timing_flag_parses_before_subcommand ... ok
[INFO] [stdout] test tests::tag_subcommand_parses ... ok
[INFO] [stdout] test tests::ui_command_parses ... ok
[INFO] [stdout] test tests::undo_subcommand_parses ... ok
[INFO] [stdout] test tests::undo_subcommand_parses_dry_run ... ok
[INFO] [stdout] test tests::mutating_commands_accept_agent_flag ... ok
[INFO] [stdout] test tests::unassign_subcommand_parses ... ok
[INFO] [stdout] test tests::triage_subcommand_parses ... ok
[INFO] [stdout] test tests::triage_group_subcommand_parses ... ok
[INFO] [stdout] test tests::undo_subcommand_parses_last_n ... ok
[INFO] [stdout] test tests::untag_subcommand_parses ... ok
[INFO] [stdout] test tests::undo_subcommand_parses_event_hash ... ok
[INFO] [stdout] test tests::update_subcommand_parses ... ok
[INFO] [stdout] test cmd::update::tests::update_urgency ... ok
[INFO] [stdout] test tests::update_subcommand_parses_multiple_flags ... ok
[INFO] [stdout] test tui::list::tests::create_modal_description_accepts_newlines ... ok
[INFO] [stdout] test tui::list::tests::create_modal_ctrl_s_requires_title ... ok
[INFO] [stdout] test tui::list::tests::cycle_option_from_last_goes_to_none ... ok
[INFO] [stdout] test tui::list::tests::cycle_option_advances_forward ... ok
[INFO] [stdout] test tui::list::tests::cycle_option_from_none_goes_to_first ... ok
[INFO] [stdout] test tui::list::tests::cycle_option_rev_advances_backward ... ok
[INFO] [stdout] test tui::list::tests::cycle_option_rev_from_first_goes_to_none ... ok
[INFO] [stdout] test tui::list::tests::cycle_option_rev_from_none_goes_to_last ... ok
[INFO] [stdout] test tui::list::tests::dependency_order_nests_blocked_under_blocker_chain ... ok
[INFO] [stdout] test tui::list::tests::dependency_order_groups_children_under_parent_goals ... ok
[INFO] [stdout] test tui::list::tests::detail_scroll_clamps_to_content_end ... ok
[INFO] [stdout] test tui::list::tests::execution_sort_places_blockers_before_blocked_items ... ok
[INFO] [stdout] test tui::list::tests::filter_apply_returns_matching_subset ... ok
[INFO] [stdout] test tui::list::tests::filter_state_by_kind ... ok
[INFO] [stdout] test tui::list::tests::filter_state_by_label ... ok
[INFO] [stdout] test tui::list::tests::filter_state_by_label_partial_match ... ok
[INFO] [stdout] test tui::list::tests::filter_state_by_search_query ... ok
[INFO] [stdout] test tui::list::tests::filter_state_by_state ... ok
[INFO] [stdout] test tui::list::tests::filter_state_combined_and_semantics ... ok
[INFO] [stdout] test tui::list::tests::filter_state_by_urgency ... ok
[INFO] [stdout] test tui::list::tests::filter_state_search_case_insensitive ... ok
[INFO] [stdout] test tui::list::tests::filter_state_search_matches_item_id ... ok
[INFO] [stdout] test tui::list::tests::hierarchy_orders_children_beneath_parent ... ok
[INFO] [stdout] test tui::list::tests::icon_color_doing_is_yellow ... ok
[INFO] [stdout] test tui::list::tests::kind_state_icons_fill_only_done ... ok
[INFO] [stdout] test tui::list::tests::list_view_a_opens_create_modal ... ok
[INFO] [stdout] test tui::list::tests::filter_state_empty_matches_all ... ok
[INFO] [stdout] test tui::list::tests::list_view_d_toggles_done_visibility ... ok
[INFO] [stdout] test tui::list::tests::list_view_detail_mode_does_not_cycle_sort ... ok
[INFO] [stdout] test tui::list::tests::list_view_detail_mode_jk_scrolls_not_selects ... ok
[INFO] [stdout] test tui::list::tests::list_view_done_separator_index_and_mapping ... ok
[INFO] [stdout] test tui::list::tests::list_view_done_items_show_newest_first ... ok
[INFO] [stdout] test tui::list::tests::list_view_empty_items_no_selection ... ok
[INFO] [stdout] test tui::list::tests::list_view_esc_clears_filters ... ok
[INFO] [stdout] test tui::list::tests::list_view_f_key_pages_down ... ok
[INFO] [stdout] test tui::list::tests::list_view_filter_clamp_selection_after_filter ... ok
[INFO] [stdout] test tui::list::tests::list_view_filter_reduces_visible_items ... ok
[INFO] [stdout] test tui::list::tests::list_view_initial_selection_is_first_item ... ok
[INFO] [stdout] test tui::list::tests::list_view_q_key_quits ... ok
[INFO] [stdout] test tui::list::tests::list_view_s_key_cycles_sort ... ok
[INFO] [stdout] test tui::list::tests::list_view_search_esc_cancels ... ok
[INFO] [stdout] test tui::list::tests::list_view_search_mode_enters_and_filters ... ok
[INFO] [stdout] test tui::list::tests::list_view_select_next_advances ... ok
[INFO] [stdout] test tui::list::tests::list_view_select_next_does_not_wrap_at_end ... ok
[INFO] [stdout] test tui::list::tests::list_view_select_prev_does_not_wrap_at_start ... ok
[INFO] [stdout] test tui::list::tests::list_view_selected_item_returns_correct_item ... ok
[INFO] [stdout] test tui::list::tests::list_view_upper_f_opens_filter_popup ... ok
[INFO] [stdout] test tui::list::tests::sort_created_desc_orders_newest_first ... ok
[INFO] [stdout] test tui::list::tests::sort_field_cycles_through_all_variants ... ok
[INFO] [stdout] test tui::list::tests::sort_priority_orders_urgent_first ... ok
[INFO] [stdout] test tui::list::tests::sort_priority_tie_breaks_by_updated_then_id ... ok
[INFO] [stdout] test tui::list::tests::sort_stable_tie_breaks_by_id ... ok
[INFO] [stdout] test tui::list::tests::sort_updated_desc_orders_newest_first ... ok
[INFO] [stdout] test tui::list::tests::truncate_exact_length_unchanged ... ok
[INFO] [stdout] test tui::list::tests::truncate_long_string_gets_ellipsis ... ok
[INFO] [stdout] test tui::list::tests::truncate_short_string_unchanged ... ok
[INFO] [stdout] test tui::markdown::tests::blockquote_has_prefix ... ok
[INFO] [stdout] test tui::list::tests::truncate_zero_width_returns_empty ... ok
[INFO] [stdout] test tui::markdown::tests::bold_gets_modifier ... ok
[INFO] [stdout] test tui::markdown::tests::code_block_indented_green ... ok
[INFO] [stdout] test tui::markdown::tests::empty_input ... ok
[INFO] [stdout] test tui::markdown::tests::heading_bold_white ... ok
[INFO] [stdout] test tui::markdown::tests::horizontal_rule ... ok
[INFO] [stdout] test tui::markdown::tests::inline_code_styled_green ... ok
[INFO] [stdout] test tests::format_flag_supported_on_admin_and_data_commands ... ok
[INFO] [stdout] test tui::markdown::tests::italic_gets_modifier ... ok
[INFO] [stdout] test tui::markdown::tests::mixed_inline_styles ... ok
[INFO] [stdout] test tui::markdown::tests::ordered_list ... ok
[INFO] [stdout] test tui::markdown::tests::plain_text_passes_through ... ok
[INFO] [stdout] test validate::tests::detects_github_and_aws_tokens ... ok
[INFO] [stdout] test tui::markdown::tests::unordered_list ... ok
[INFO] [stdout] test validate::tests::detects_private_key_like_material ... ok
[INFO] [stdout] test validate::tests::ignores_regular_text ... ok
[INFO] [stdout] test validate::tests::label_rules ... ok
[INFO] [stdout] test validate::tests::invalid_ids ... ok
[INFO] [stdout] test tui::markdown::tests::multiline_paragraph ... ok
[INFO] [stdout] test validate::tests::valid_ids ... ok
[INFO] [stdout] test tui::actions::tests::create_task_generates_item ... ok
[INFO] [stdout] test tui::actions::tests::do_item_rejects_invalid_transition ... ok
[INFO] [stdout] test tui::actions::tests::done_item_transitions_to_done ... ok
[INFO] [stdout] test tui::actions::tests::do_item_transitions_to_doing ... ok
[INFO] [stdout] test tests::all_subcommands_listed ... ok
[INFO] [stderr]      Running tests/e2e_comments_labels_pagination.rs (/opt/rustwide/target/debug/deps/e2e_comments_labels_pagination-126a09094cbe4ee0)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 614 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.24s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 35 tests
[INFO] [stdout] test comments_list_json_schema ... ok
[INFO] [stdout] test comment_add_json_contract ... ok
[INFO] [stdout] test comment_add_multiple_comments ... ok
[INFO] [stdout] test comments_empty_list_on_new_item ... ok
[INFO] [stdout] test comments_visible_in_show_output ... ok
[INFO] [stdout] test close_child_with_done_then_reopen_then_close_again ... ok
[INFO] [stdout] test done_on_standalone_item_has_no_auto_completed_parent ... ok
[INFO] [stdout] test done_response_contains_auto_completed_parent ... ok
[INFO] [stdout] test goal_without_children_does_not_auto_close ... ok
[INFO] [stdout] test label_add_single_label ... ok
[INFO] [stdout] test label_add_then_show_reflects_label ... ok
[INFO] [stdout] test goal_auto_close_requires_all_children_done ... ok
[INFO] [stdout] test label_add_is_alias_for_tag ... ok
[INFO] [stdout] test comment_on_nonexistent_item_fails ... ok
[INFO] [stdout] test comments_on_nonexistent_item_fails ... ok
[INFO] [stdout] test label_add_on_nonexistent_item_fails ... ok
[INFO] [stdout] test label_rm_on_nonexistent_item_fails ... ok
[INFO] [stdout] test labels_json_schema_is_stable ... ok
[INFO] [stdout] test labels_list_empty_project_returns_empty_array ... ok
[INFO] [stdout] test label_rm_removes_label ... ok
[INFO] [stdout] test label_rm_then_show_does_not_reflect_label ... ok
[INFO] [stdout] test label_rm_is_alias_for_untag ... ok
[INFO] [stdout] test goal_state_after_reopen_child_remains_done ... ok
[INFO] [stdout] test list_filter_by_urgency ... ok
[INFO] [stdout] test list_json_response_has_required_fields ... ok
[INFO] [stdout] test labels_namespace_groups_by_prefix ... ok
[INFO] [stdout] test list_filter_combined_state_and_label ... ok
[INFO] [stdout] test labels_count_decrements_when_removed ... ok
[INFO] [stdout] test list_sort_by_updated ... ok
[INFO] [stdout] test list_has_more_false_when_on_last_page ... ok
[INFO] [stdout] test list_sort_by_created ... ok
[INFO] [stdout] test show_includes_all_comments ... ok
[INFO] [stdout] test list_pagination_limit_and_offset ... ok
[INFO] [stdout] test labels_list_shows_added_labels ... ok
[INFO] [stdout] test list_pagination_total_is_consistent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_deps.rs (/opt/rustwide/target/debug/deps/e2e_deps-f434ef1f4115fec5)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test dep_add_and_graph_json_show_inverse_relationships ... ok
[INFO] [stdout] test dep_rm_removes_relationship_from_both_sides ... ok
[INFO] [stdout] test graph_text_tree_shows_dependency_chain ... ok
[INFO] [stdout] test dep_add_rejects_cycles_with_actionable_error ... ok
[INFO] [stderr]      Running tests/e2e_extended.rs (/opt/rustwide/target/debug/deps/e2e_extended-86d6e2ce106e7eeb)
[INFO] [stdout] test cross_goal_dependencies_are_reflected_in_graph_json ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 24 tests
[INFO] [stdout] test close_json_output ... ok
[INFO] [stdout] test close_open_item_succeeds ... ok
[INFO] [stdout] test close_with_reason ... ok
[INFO] [stdout] test close_doing_item_succeeds ... ok
[INFO] [stdout] test reopen_already_open_fails ... ok
[INFO] [stdout] test close_already_done_fails ... ok
[INFO] [stdout] test reopen_done_item_succeeds ... ok
[INFO] [stdout] test close_is_equivalent_to_done ... ok
[INFO] [stdout] test full_update_close_reopen_lifecycle ... ok
[INFO] [stdout] test reopen_cycle_done_reopen_close_reopen ... ok
[INFO] [stdout] test close_nonexistent_item_fails ... ok
[INFO] [stdout] test reopen_nonexistent_item_fails ... ok
[INFO] [stdout] test update_invalid_size_fails ... ok
[INFO] [stdout] test reopen_json_output ... ok
[INFO] [stdout] test update_multiple_fields_in_one_invocation ... ok
[INFO] [stdout] test update_invalid_urgency_fails ... ok
[INFO] [stdout] test update_no_fields_fails ... ok
[INFO] [stdout] test update_with_partial_id ... ok
[INFO] [stdout] test update_title_json_output ... ok
[INFO] [stdout] test reopen_doing_item_fails ... ok
[INFO] [stdout] test update_nonexistent_item_fails ... ok
[INFO] [stdout] test update_invalid_kind_fails ... ok
[INFO] [stdout] test update_title_changes_title ... ok
[INFO] [stdout] test update_requires_agent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.30s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_lifecycle.rs (/opt/rustwide/target/debug/deps/e2e_lifecycle-4046f77eaaef076c)
[INFO] [stdout] 
[INFO] [stdout] running 38 tests
[INFO] [stdout] test create_json_contract ... ok
[INFO] [stdout] test create_with_all_options ... ok
[INFO] [stdout] test create_human_output_contains_id ... ok
[INFO] [stdout] test create_and_list_single_item ... ok
[INFO] [stdout] test do_transition_json_output ... ok
[INFO] [stdout] test create_with_initial_labels ... ok
[INFO] [stdout] test create_multiple_items_all_listed ... ok
[INFO] [stdout] test create_invalid_kind_fails ... ok
[INFO] [stdout] test create_goal_with_children ... ok
[INFO] [stdout] test do_with_partial_id ... ok
[INFO] [stdout] test do_already_done_item_fails ... ok
[INFO] [stdout] test do_nonexistent_item_fails ... ok
[INFO] [stdout] test done_with_reason_flag ... ok
[INFO] [stdout] test init_json_output_is_not_json_by_default ... ok
[INFO] [stdout] test list_empty_project_human_output_succeeds ... ok
[INFO] [stdout] test create_without_bones_dir_fails ... ok
[INFO] [stdout] test list_empty_project_returns_empty ... ok
[INFO] [stdout] test done_transition_json_output ... ok
[INFO] [stdout] test done_already_done_item_fails ... ok
[INFO] [stdout] test done_nonexistent_item_fails ... ok
[INFO] [stdout] test list_human_output_shows_items ... ok
[INFO] [stdout] test goal_auto_complete_when_all_children_done ... ok
[INFO] [stdout] test list_filter_by_kind ... ok
[INFO] [stdout] test full_lifecycle_create_do_done ... ok
[INFO] [stdout] test goal_auto_complete_single_child ... ok
[INFO] [stdout] test list_filter_by_state ... ok
[INFO] [stdout] test show_json_contract ... ok
[INFO] [stdout] test list_json_contract ... ok
[INFO] [stdout] test show_with_partial_id ... ok
[INFO] [stdout] test tag_multiple_labels ... ok
[INFO] [stdout] test skip_do_direct_open_to_done ... ok
[INFO] [stdout] test list_filter_by_label ... ok
[INFO] [stdout] test tag_nonexistent_item_fails ... ok
[INFO] [stdout] test move_item_under_parent ... ok
[INFO] [stdout] test tag_and_show_labels ... ok
[INFO] [stdout] test untag_nonexistent_item_fails ... ok
[INFO] [stdout] test show_nonexistent_item_fails ... ok
[INFO] [stdout] test untag_removes_label ... ok
[INFO] [stderr]      Running tests/e2e_onboarding.rs (/opt/rustwide/target/debug/deps/e2e_onboarding-45fcc59590e4625c)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.73s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test init_creates_expected_event_structure ... ok
[INFO] [stdout] test init_create_list_show_first_item_flow_succeeds ... ok
[INFO] [stdout] test reinit_without_force_fails_with_actionable_message ... ok
[INFO] [stdout] test create_without_agent_fails_with_actionable_message ... ok
[INFO] [stdout] test first_item_appends_event_to_active_shard ... ok
[INFO] [stdout] test init_hooks_requires_git_repo ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_operational.rs (/opt/rustwide/target/debug/deps/e2e_operational-988a89e8bfabf8d7)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test verify_succeeds_with_missing_projection_db ... ok
[INFO] [stdout] test verify_json_schema_is_stable ... ok
[INFO] [stdout] test history_json_schema_is_stable ... ok
[INFO] [stdout] test dup_json_returns_candidates_for_similar_items ... ok
[INFO] [stdout] test history_fails_on_corrupted_shard_with_actionable_error ... ok
[INFO] [stderr]      Running tests/e2e_reporting.rs (/opt/rustwide/target/debug/deps/e2e_reporting-a7995f2a7d256393)
[INFO] [stdout] test search_json_returns_expected_hits ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test import_jsonl_reports_skipped_count_in_summary ... ok
[INFO] [stdout] test import_jsonl_skips_malformed_lines_and_reports_to_stderr ... ok
[INFO] [stdout] test export_produces_valid_jsonl_with_expected_fields ... ok
[INFO] [stdout] test export_to_stdout_exits_successfully ... ok
[INFO] [stdout] test export_import_roundtrip_preserves_item_ids ... ok
[INFO] [stdout] test import_nonexistent_file_fails_gracefully ... ok
[INFO] [stdout] test import_without_mode_flag_fails_with_useful_error ... ok
[INFO] [stdout] test export_import_roundtrip_preserves_item_count ... ok
[INFO] [stdout] test import_json_output_reports_import_summary ... ok
[INFO] [stdout] test stats_aging_fields_present ... ok
[INFO] [stdout] test stats_velocity_fields_are_non_negative ... ok
[INFO] [stdout] test stats_human_output_contains_known_sections ... ok
[INFO] [stdout] test export_preserves_ordering_from_shards ... ok
[INFO] [stdout] test export_import_roundtrip_preserves_item_titles ... ok
[INFO] [stdout] test stats_fails_without_projection ... ok
[INFO] [stdout] test stats_json_output_has_expected_top_level_fields ... ok
[INFO] [stdout] test stats_reflects_item_counts_by_state ... ok
[INFO] [stderr]      Running tests/e2e_safety.rs (/opt/rustwide/target/debug/deps/e2e_safety-517521f177fac028)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.11s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test archive_open_item_fails ... ok
[INFO] [stdout] test doctor_json_schema_is_stable_for_healthy_repo ... ok
[INFO] [stdout] test undo_dry_run_does_not_change_state ... ok
[INFO] [stdout] test diagnose_json_schema_is_stable ... ok
[INFO] [stdout] test doctor_reports_projection_drift_as_fail ... ok
[INFO] [stdout] test doctor_fix_removes_stale_current_events ... ok
[INFO] [stdout] test archive_auto_days_zero_archives_done_items ... ok
[INFO] [stdout] test archive_done_item_and_reopen_from_archived ... ok
[INFO] [stdout] test undo_specific_event_hash_restores_state ... ok
[INFO] [stderr]      Running tests/e2e_triage.rs (/opt/rustwide/target/debug/deps/e2e_triage-1265f5921df62729)
[INFO] [stdout] test undo_last_two_events_restore_previous_state ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 49 tests
[INFO] [stdout] test cycles_without_init_fails_with_message ... ok
[INFO] [stdout] test cycles_empty_project_returns_empty_array ... ok
[INFO] [stdout] test did_nonexistent_item_fails ... ok
[INFO] [stdout] test cycles_human_output_no_cycles_for_chain ... ok
[INFO] [stdout] test dep_add_prevents_cycle_creation ... ok
[INFO] [stdout] test cycles_reports_clean_for_dag ... ok
[INFO] [stdout] test health_empty_project_succeeds ... ok
[INFO] [stdout] test cycles_json_schema_is_valid ... ok
[INFO] [stdout] test did_human_output_is_non_empty ... ok
[INFO] [stdout] test cycles_human_output_clean_dag ... ok
[INFO] [stdout] test did_records_feedback_and_returns_json ... ok
[INFO] [stdout] test health_without_init_fails_with_message ... ok
[INFO] [stdout] test health_density_is_between_zero_and_one ... ok
[INFO] [stdout] test did_then_skip_both_succeed ... ok
[INFO] [stdout] test next_empty_project_returns_message ... ok
[INFO] [stdout] test health_critical_path_length_is_positive_for_dependency_graph ... ok
[INFO] [stdout] test health_human_output_shows_dashboard ... ok
[INFO] [stdout] test health_shows_metrics_json ... ok
[INFO] [stdout] test next_json_explanation_is_non_empty ... ok
[INFO] [stdout] test next_deterministic_for_stable_graph ... ok
[INFO] [stdout] test health_scc_count_equals_node_count_for_dag ... ok
[INFO] [stdout] test next_without_init_fails_with_message ... ok
[INFO] [stdout] test next_human_output_is_non_empty ... ok
[INFO] [stdout] test next_agent_slots_returns_assignments ... ok
[INFO] [stdout] test plan_human_output_empty_project_succeeds ... ok
[INFO] [stdout] test plan_empty_project_succeeds ... ok
[INFO] [stdout] test next_json_score_is_non_negative ... ok
[INFO] [stdout] test next_json_id_matches_known_schema ... ok
[INFO] [stdout] test next_returns_unblocked_item ... ok
[INFO] [stdout] test plan_without_init_fails_with_message ... ok
[INFO] [stdout] test plan_all_items_appear_exactly_once ... ok
[INFO] [stdout] test skip_nonexistent_item_fails ... ok
[INFO] [stdout] test plan_human_output_shows_layers ... ok
[INFO] [stdout] test plan_deterministic_for_stable_graph ... ok
[INFO] [stdout] test plan_layer_one_contains_only_unblocked_items ... ok
[INFO] [stdout] test triage_empty_project_succeeds ... ok
[INFO] [stdout] test plan_layers_contain_valid_item_ids ... ok
[INFO] [stdout] test plan_shows_execution_layers ... ok
[INFO] [stdout] test skip_human_output_is_non_empty ... ok
[INFO] [stdout] test triage_deterministic_for_stable_graph ... ok
[INFO] [stdout] test skip_feedback_does_not_crash_next_invocation ... ok
[INFO] [stdout] test triage_without_init_fails_with_message ... ok
[INFO] [stdout] test triage_human_output_does_not_contain_errors ... ok
[INFO] [stdout] test triage_human_output_contains_sections ... ok
[INFO] [stdout] test skip_records_feedback_and_returns_json ... ok
[INFO] [stdout] test triage_json_ids_start_with_bn_prefix ... ok
[INFO] [stdout] test triage_json_row_schema ... ok
[INFO] [stdout] test triage_json_sections_are_known_values ... ok
[INFO] [stdout] test triage_produces_json_array ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 49 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.87s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/bones_core-00751c30cdac331a)
[INFO] [stdout] 
[INFO] [stdout] running 1081 tests
[INFO] [stdout] test cache::codec::tests::interned_string_empty ... ok
[INFO] [stdout] test cache::codec::tests::event_type_roundtrip_all_types ... ok
[INFO] [stdout] test cache::codec::tests::event_type_empty ... ok
[INFO] [stdout] test cache::codec::tests::event_type_single ... ok
[INFO] [stdout] test cache::codec::tests::event_type_compresses_homogeneous_stream ... ok
[INFO] [stdout] test cache::codec::tests::raw_bytes_empty ... ok
[INFO] [stdout] test cache::codec::tests::rle_u16_roundtrip ... ok
[INFO] [stdout] test cache::codec::tests::rle_u8_empty ... ok
[INFO] [stdout] test cache::codec::tests::rle_u8_mixed_runs ... ok
[INFO] [stdout] test cache::codec::tests::rle_u8_single_run ... ok
[INFO] [stdout] test cache::codec::tests::event_type_odd_count ... ok
[INFO] [stdout] test cache::codec::tests::item_id_empty ... ok
[INFO] [stdout] test cache::codec::tests::interned_string_single ... ok
[INFO] [stdout] test cache::codec::tests::interned_string_roundtrip_repeated ... ok
[INFO] [stdout] test cache::codec::tests::raw_bytes_roundtrip ... ok
[INFO] [stdout] test cache::codec::tests::timestamp_delta_encodes_compactly ... ok
[INFO] [stdout] test cache::codec::tests::item_id_roundtrip ... ok
[INFO] [stdout] test cache::codec::tests::timestamp_roundtrip_with_negative_delta ... ok
[INFO] [stdout] test cache::codec::tests::timestamp_single ... ok
[INFO] [stdout] test cache::codec::tests::timestamp_roundtrip_ascending ... ok
[INFO] [stdout] test cache::codec::tests::value_codec_empty ... ok
[INFO] [stdout] test cache::codec::tests::interned_string_compresses_repeated_values ... ok
[INFO] [stdout] test cache::codec::tests::timestamp_empty ... ok
[INFO] [stdout] test cache::codec::tests::value_codec_large_payload ... ok
[INFO] [stdout] test cache::codec::tests::value_codec_roundtrip ... ok
[INFO] [stdout] test cache::codec::tests::varint_decode_truncated ... ok
[INFO] [stdout] test cache::codec::tests::varint_roundtrip_small ... ok
[INFO] [stdout] test cache::codec::tests::zigzag_roundtrip ... ok
[INFO] [stdout] test cache::columns::tests::column_count_is_seven ... ok
[INFO] [stdout] test cache::columns::tests::from_events_empty ... ok
[INFO] [stdout] test cache::columns::tests::into_events_empty ... ok
[INFO] [stdout] test cache::columns::tests::into_events_column_length_mismatch_is_error ... ok
[INFO] [stdout] test cache::columns::tests::column_indices_are_distinct ... ok
[INFO] [stdout] test cache::columns::tests::from_events_parents_joined_with_comma ... ok
[INFO] [stdout] test cache::columns::tests::row_out_of_bounds_returns_none ... ok
[INFO] [stdout] test cache::columns::tests::event_types_projection ... ok
[INFO] [stdout] test cache::columns::tests::from_events_multiple ... ok
[INFO] [stdout] test cache::columns::tests::row_returns_correct_fields ... ok
[INFO] [stdout] test cache::columns::tests::timestamps_projection ... ok
[INFO] [stdout] test cache::columns::tests::from_events_single_create ... ok
[INFO] [stdout] test cache::manager::tests::fingerprint_nonexistent_dir_is_zero ... ok
[INFO] [stdout] test cache::columns::tests::into_events_empty_parents_becomes_vec ... ok
[INFO] [stdout] test cache::columns::tests::into_events_multi_parent ... ok
[INFO] [stdout] test cache::columns::tests::into_events_roundtrip_multiple ... ok
[INFO] [stdout] test cache::columns::tests::into_events_roundtrip_single ... ok
[INFO] [stdout] test cache::manager::tests::fingerprint_empty_dir_is_zero ... ok
[INFO] [stdout] test cache::manager::tests::fingerprint_changes_when_file_added ... ok
[INFO] [stdout] test cache::manager::tests::is_fresh_returns_true_after_load ... ok
[INFO] [stdout] test cache::manager::tests::is_fresh_returns_false_when_no_cache ... ok
[INFO] [stdout] test cache::manager::tests::load_events_from_tsjson_when_no_cache ... ok
[INFO] [stdout] test cache::manager::tests::load_events_falls_back_on_stale_cache ... ok
[INFO] [stdout] test cache::manager::tests::is_fresh_returns_false_after_shard_modification ... ok
[INFO] [stdout] test cache::reader::tests::from_bytes_valid ... ok
[INFO] [stdout] test cache::reader::tests::data_crc64_is_nonzero_for_nonempty ... ok
[INFO] [stdout] test cache::reader::tests::file_size_matches_encoded_bytes ... ok
[INFO] [stdout] test cache::reader::tests::read_all_empty_cache ... ok
[INFO] [stdout] test cache::manager::tests::cache_output_matches_tsjson_parse ... ok
[INFO] [stdout] test cache::manager::tests::load_events_empty_shard ... ok
[INFO] [stdout] test cache::reader::tests::read_all_returns_all_events ... ok
[INFO] [stdout] test cache::reader::tests::open_nonexistent_file_returns_io_error ... ok
[INFO] [stdout] test cache::reader::tests::open_valid_cache_file ... ok
[INFO] [stdout] test cache::reader::tests::open_corrupt_file_returns_cache_error ... ok
[INFO] [stdout] test cache::reader::tests::read_range_clamped_to_end ... ok
[INFO] [stdout] test cache::manager::tests::rebuild_creates_cache_file ... ok
[INFO] [stdout] test cache::manager::tests::load_events_from_cache_when_fresh ... ok
[INFO] [stdout] test cache::tests::checksum_different_data ... ok
[INFO] [stdout] test cache::tests::checksum_single_bit_flip ... ok
[INFO] [stdout] test cache::tests::decode_unsupported_version ... ok
[INFO] [stdout] test cache::tests::decode_corrupted_crc ... ok
[INFO] [stdout] test cache::tests::encode_decode_empty ... ok
[INFO] [stdout] test cache::reader::tests::read_range_subset ... ok
[INFO] [stdout] test cache::reader::tests::read_range_start_past_end ... ok
[INFO] [stdout] test cache::tests::decode_truncated_data ... ok
[INFO] [stdout] test cache::tests::encode_decode_multiple_events ... ok
[INFO] [stdout] test cache::tests::new_header_defaults ... ok
[INFO] [stdout] test cache::tests::encode_decode_single_event ... ok
[INFO] [stdout] test cache::tests::magic_bytes_are_bnch ... ok
[INFO] [stdout] test cache::tests::encode_decode_all_event_types ... ok
[INFO] [stdout] test cache::tests::checksum_empty ... ok
[INFO] [stdout] test cache::tests::decode_bad_magic ... ok
[INFO] [stdout] test cache::tests::header_size_is_32 ... ok
[INFO] [stdout] test capabilities::tests::binary_cache_false_for_missing_file ... ok
[INFO] [stdout] test capabilities::tests::binary_cache_false_for_truncated_file ... ok
[INFO] [stdout] test capabilities::tests::binary_cache_false_for_wrong_magic ... ok
[INFO] [stdout] test capabilities::tests::binary_cache_true_for_valid_magic ... ok
[INFO] [stdout] test cache::writer::tests::write_to_file_round_trips_events ... ok
[INFO] [stdout] test cache::writer::tests::rebuild_cache_reads_events_shards ... ok
[INFO] [stdout] test capabilities::tests::describe_available_flags_match_capabilities ... ok
[INFO] [stdout] test capabilities::tests::describe_fallbacks_are_non_empty ... ok
[INFO] [stdout] test capabilities::tests::capabilities_default_is_all_false ... ok
[INFO] [stdout] test cache::writer::tests::append_incremental_appends_new_events ... ok
[INFO] [stdout] test capabilities::tests::bones_dir_none_for_in_memory_db ... ok
[INFO] [stdout] test capabilities::tests::bones_dir_is_parent_of_db_file ... ok
[INFO] [stdout] test capabilities::tests::describe_names_are_stable ... ok
[INFO] [stdout] test capabilities::tests::describe_returns_five_entries ... ok
[INFO] [stdout] test capabilities::tests::detect_on_bare_db_has_no_capabilities ... ok
[INFO] [stdout] test capabilities::tests::semantic_model_is_false_in_ci ... ok
[INFO] [stdout] test capabilities::tests::fts5_is_false_on_bare_db ... ok
[INFO] [stdout] test capabilities::tests::triage_false_on_bare_db_no_items_table ... ok
[INFO] [stdout] test capabilities::tests::vectors_probe_matches_direct_query ... ok
[INFO] [stdout] test clock::itc::tests::test_event_branch_base_plus_lift ... ok
[INFO] [stdout] test clock::itc::tests::test_event_branch_distinct_children ... ok
[INFO] [stdout] test clock::itc::tests::test_event_branch_equal_leaves_normalizes ... ok
[INFO] [stdout] test clock::itc::tests::test_event_branch_lifts_common_minimum ... ok
[INFO] [stdout] test clock::itc::tests::test_event_branch_one_child_zero_no_lift ... ok
[INFO] [stdout] test clock::itc::tests::test_event_branch_with_nested_branches ... ok
[INFO] [stdout] test clock::itc::tests::test_event_branch_zero_leaves_normalizes ... ok
[INFO] [stdout] test clock::itc::tests::test_event_clone ... ok
[INFO] [stdout] test clock::itc::tests::test_event_depth_nested ... ok
[INFO] [stdout] test clock::itc::tests::test_event_display_branch ... ok
[INFO] [stdout] test clock::itc::tests::test_event_display_leaf ... ok
[INFO] [stdout] test clock::itc::tests::test_event_equality ... ok
[INFO] [stdout] test clock::itc::tests::test_event_large_values ... ok
[INFO] [stdout] test clock::itc::tests::test_event_leaf ... ok
[INFO] [stdout] test clock::itc::tests::test_event_lift_branch ... ok
[INFO] [stdout] test clock::itc::tests::test_event_lift_leaf ... ok
[INFO] [stdout] test clock::itc::tests::test_event_lift_zero ... ok
[INFO] [stdout] test clock::itc::tests::test_event_max_value_branch ... ok
[INFO] [stdout] test clock::itc::tests::test_event_min_max_deep ... ok
[INFO] [stdout] test clock::itc::tests::test_event_min_value_branch ... ok
[INFO] [stdout] test clock::itc::tests::test_event_node_count_nested ... ok
[INFO] [stdout] test clock::itc::tests::test_event_normalize_method ... ok
[INFO] [stdout] test clock::itc::tests::test_event_normalize_partial_collapse ... ok
[INFO] [stdout] test clock::itc::tests::test_event_serde_roundtrip_branch ... ok
[INFO] [stdout] test clock::itc::tests::test_event_serde_roundtrip_leaf ... ok
[INFO] [stdout] test clock::itc::tests::test_event_zero ... ok
[INFO] [stdout] test clock::itc::tests::test_id_branch_both_one_normalizes ... ok
[INFO] [stdout] test clock::itc::tests::test_id_branch_both_zero_normalizes ... ok
[INFO] [stdout] test clock::itc::tests::test_id_branch_distinct_children ... ok
[INFO] [stdout] test clock::itc::tests::test_id_clone ... ok
[INFO] [stdout] test clock::itc::tests::test_id_deep_normalization ... ok
[INFO] [stdout] test clock::itc::tests::test_id_deeply_nested ... ok
[INFO] [stdout] test clock::itc::tests::test_id_display_branch ... ok
[INFO] [stdout] test clock::itc::tests::test_id_display_nested ... ok
[INFO] [stdout] test clock::itc::tests::test_id_display_one ... ok
[INFO] [stdout] test clock::itc::tests::test_id_display_zero ... ok
[INFO] [stdout] test clock::itc::tests::test_id_equality ... ok
[INFO] [stdout] test clock::itc::tests::test_id_nested_normalization ... ok
[INFO] [stdout] test clock::itc::tests::test_id_normalize_already_minimal ... ok
[INFO] [stdout] test clock::itc::tests::test_id_normalize_method ... ok
[INFO] [stdout] test clock::itc::tests::test_id_one ... ok
[INFO] [stdout] test clock::itc::tests::test_id_represents_left_half_partition ... ok
[INFO] [stdout] test clock::itc::tests::test_id_represents_quarter_partition ... ok
[INFO] [stdout] test clock::itc::tests::test_id_serde_roundtrip_branch ... ok
[INFO] [stdout] test clock::itc::tests::test_id_serde_roundtrip_one ... ok
[INFO] [stdout] test clock::itc::tests::test_id_serde_roundtrip_zero ... ok
[INFO] [stdout] test clock::itc::tests::test_id_zero ... ok
[INFO] [stdout] test clock::itc::tests::test_normalization_idempotent_event ... ok
[INFO] [stdout] test clock::itc::tests::test_normalization_idempotent_id ... ok
[INFO] [stdout] test clock::itc::tests::test_normalization_preserves_semantics ... ok
[INFO] [stdout] test clock::itc::tests::test_stamp_anonymous ... ok
[INFO] [stdout] test clock::itc::tests::test_stamp_clone ... ok
[INFO] [stdout] test clock::itc::tests::test_stamp_display_complex ... ok
[INFO] [stdout] test clock::itc::tests::test_stamp_display_seed ... ok
[INFO] [stdout] test clock::itc::tests::test_stamp_equality ... ok
[INFO] [stdout] test clock::itc::tests::test_stamp_new ... ok
[INFO] [stdout] test clock::itc::tests::test_stamp_normalize ... ok
[INFO] [stdout] test clock::itc::tests::test_stamp_seed ... ok
[INFO] [stdout] test clock::itc::tests::test_stamp_serde_roundtrip ... ok
[INFO] [stdout] test clock::itc::tests::test_stamp_serde_roundtrip_seed ... ok
[INFO] [stdout] test clock::itc::tests::test_stamp_with_complex_trees ... ok
[INFO] [stdout] test clock::ops::tests::concurrent_after_fork_and_events ... ok
[INFO] [stdout] test clock::ops::tests::concurrent_is_symmetric ... ok
[INFO] [stdout] test clock::ops::tests::eight_agent_fork_work_retire_cycle ... ok
[INFO] [stdout] test capabilities::tests::fts5_is_true_after_migration ... ok
[INFO] [stdout] test clock::ops::tests::event_monotonically_increases ... ok
[INFO] [stdout] test clock::ops::tests::event_multiple_increments ... ok
[INFO] [stdout] test clock::ops::tests::event_on_forked_stamp ... ok
[INFO] [stdout] test capabilities::tests::triage_true_after_migration_zero_items ... ok
[INFO] [stdout] test clock::ops::tests::fork_ids_are_disjoint ... ok
[INFO] [stdout] test clock::ops::tests::fork_of_half_further_splits ... ok
[INFO] [stdout] test clock::ops::tests::fork_preserves_event_history ... ok
[INFO] [stdout] test clock::ops::tests::fork_preserves_interval_coverage ... ok
[INFO] [stdout] test clock::ops::tests::fork_seed_produces_two_halves ... ok
[INFO] [stdout] test clock::ops::tests::four_agent_scenario ... ok
[INFO] [stdout] test capabilities::tests::detect_triage_true_on_migrated_db ... ok
[INFO] [stdout] test capabilities::tests::detect_binary_cache_false_with_bad_magic ... ok
[INFO] [stdout] test clock::ops::tests::join_is_commutative ... ok
[INFO] [stdout] test clock::ops::tests::join_merges_divergent_events ... ok
[INFO] [stdout] test capabilities::tests::detect_with_valid_binary_cache ... ok
[INFO] [stdout] test capabilities::tests::detect_on_migrated_db_has_fts5 ... ok
[INFO] [stdout] test cache::tests::encode_decode_large_batch ... ok
[INFO] [stdout] test clock::ops::tests::join_with_anonymous ... ok
[INFO] [stdout] test clock::ops::tests::leq_forked_then_diverged ... ok
[INFO] [stdout] test clock::ops::tests::leq_joined_dominates_parts ... ok
[INFO] [stdout] test clock::ops::tests::leq_identical_stamps ... ok
[INFO] [stdout] test clock::ops::tests::leq_transitive ... ok
[INFO] [stdout] test clock::ops::tests::leq_zero_events ... ok
[INFO] [stdout] test clock::ops::tests::not_concurrent_when_dominated ... ok
[INFO] [stdout] test clock::ops::tests::not_concurrent_when_equal ... ok
[INFO] [stdout] test clock::ops::tests::peek_reflects_events ... ok
[INFO] [stdout] test clock::ops::tests::peek_returns_event_ref ... ok
[INFO] [stdout] test clock::ops::tests::join_recovers_seed_from_fork ... ok
[INFO] [stdout] test clock::ops::tests::leq_after_event ... ok
[INFO] [stdout] test clock::ops::tests::prop_leq_antisymmetric ... ok
[INFO] [stdout] test clock::ops::tests::prop_join_dominates_both ... ok
[INFO] [stdout] test clock::ops::tests::prop_event_monotonic ... ok
[INFO] [stdout] test clock::ops::tests::sixteen_agent_cycle ... ok
[INFO] [stdout] test clock::ops::tests::two_agent_fork_work_retire ... ok
[INFO] [stdout] test clock::serde::tests::compact_eight_agent_size_stays_under_target ... ok
[INFO] [stdout] test clock::serde::tests::compact_roundtrip_complex_stamp ... ok
[INFO] [stdout] test clock::serde::tests::compact_roundtrip_seed_stamp ... ok
[INFO] [stdout] test clock::serde::tests::compact_single_agent_size_stays_small ... ok
[INFO] [stdout] test clock::ops::tests::prop_fork_join_roundtrip ... ok
[INFO] [stdout] test clock::serde::tests::rejects_trailing_bytes ... ok
[INFO] [stdout] test clock::serde::tests::rejects_unknown_version ... ok
[INFO] [stdout] test clock::skew::tests::test_future_skew ... ok
[INFO] [stdout] test clock::ops::tests::prop_fork_preserves_coverage ... ok
[INFO] [stdout] test clock::skew::tests::test_no_skew ... ok
[INFO] [stdout] test clock::text::tests::decode_rejects_bad_input ... ok
[INFO] [stdout] test clock::text::tests::decode_rejects_malformed_v3_payloads ... ok
[INFO] [stdout] test clock::text::tests::sparse_compact_roundtrip_preserves_bytes ... ok
[INFO] [stdout] test clock::skew::tests::test_past_skew ... ok
[INFO] [stdout] test clock::text::tests::sparse_decode_rejects_out_of_range_index ... ok
[INFO] [stdout] test clock::text::tests::sparse_payload_smaller_than_legacy_hex ... ok
[INFO] [stdout] test clock::text::tests::sparse_decode_rejects_duplicate_indices ... ok
[INFO] [stdout] test clock::ops::tests::prop_leq_reflexive ... ok
[INFO] [stdout] test clock::text::tests::stamp_text_roundtrip_v1_legacy_decode ... ok
[INFO] [stdout] test compact::tests::compact_item_empty_events_returns_none ... ok
[INFO] [stdout] test clock::text::tests::stamp_text_roundtrip_v3 ... ok
[INFO] [stdout] test clock::ops::tests::prop_leq_transitive ... ok
[INFO] [stdout] test compact::tests::compact_item_redacted_events_returns_none ... ok
[INFO] [stdout] test compact::tests::compact_item_produces_snapshot ... ok
[INFO] [stdout] test compact::tests::compact_items_batch ... ok
[INFO] [stdout] test compact::tests::compact_item_snapshot_payload_has_audit_metadata ... ok
[INFO] [stdout] test compact::tests::compact_item_snapshot_preserves_state ... ok
[INFO] [stdout] test compact::tests::eligible_done_item_old_enough ... ok
[INFO] [stdout] test compact::tests::compact_items_skips_already_compacted ... ok
[INFO] [stdout] test compact::tests::from_snapshot_payload_roundtrips_state ... ok
[INFO] [stdout] test compact::tests::not_eligible_done_item_too_new ... ok
[INFO] [stdout] test compact::tests::not_eligible_deleted_item ... ok
[INFO] [stdout] test clock::ops::tests::prop_concurrent_symmetric ... ok
[INFO] [stdout] test compact::tests::not_eligible_open_item ... ok
[INFO] [stdout] test compact::tests::snapshot_merge_commutative ... ok
[INFO] [stdout] test compact::tests::compaction_policy_defaults ... ok
[INFO] [stdout] test compact::tests::snapshot_merge_is_idempotent_with_original ... ok
[INFO] [stdout] test config::tests::cli_json_overrides_env_and_config ... ok
[INFO] [stdout] test config::tests::discover_repos_empty_config ... ok
[INFO] [stdout] test config::tests::discover_repos_handles_missing_directories ... ok
[INFO] [stdout] test config::tests::discover_repos_handles_missing_bones_directory ... ok
[INFO] [stdout] test config::tests::legacy_aliases_are_normalized ... ok
[INFO] [stdout] test config::tests::missing_project_config_uses_defaults ... ok
[INFO] [stdout] test config::tests::discover_repos_validates_bones_directory ... ok
[INFO] [stdout] test crdt::gset::tests::test_gset_idempotent_insert ... ok
[INFO] [stdout] test crdt::gset::tests::test_gset_insert ... ok
[INFO] [stdout] test compact::tests::verify_lattice_join_holds ... ok
[INFO] [stdout] test crdt::gset::tests::test_gset_merge ... ok
[INFO] [stdout] test crdt::gset::tests::test_gset_semilattice_associative ... ok
[INFO] [stdout] test crdt::gset::tests::test_gset_semilattice_idempotent ... ok
[INFO] [stdout] test crdt::gset::tests::test_gset_semilattice_commutative ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_assign_and_unassign ... ok
[INFO] [stdout] test crdt::item_state::tests::accessor_methods ... ok
[INFO] [stdout] test config::tests::user_config_parses_repos_list ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_comment_adds_to_gset ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_compact_replaces_description ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_create_sets_fields ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_delete_sets_flag ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_duplicate_comment_is_idempotent ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_link_blocks ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_link_related ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_move_archived_then_reopen ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_events_then_merge_equals_merge_then_apply ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_move_forward ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_move_reopen ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_unlink_blocks ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_unlink_related ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_update_description ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_update_kind ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_update_parent ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_update_labels_add_remove ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_update_size ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_update_title ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_update_unknown_field_is_noop ... ok
[INFO] [stdout] test crdt::item_state::tests::default_impl_matches_new ... ok
[INFO] [stdout] test crdt::item_state::tests::apply_update_urgency ... ok
[INFO] [stdout] test crdt::item_state::tests::default_state_is_empty ... ok
[INFO] [stdout] test crdt::item_state::tests::full_lifecycle ... ok
[INFO] [stdout] test crdt::item_state::tests::divergent_branches_merge_correctly ... ok
[INFO] [stdout] test crdt::item_state::tests::merge_default_with_default ... ok
[INFO] [stdout] test crdt::item_state::tests::merge_associative ... ok
[INFO] [stdout] test crdt::item_state::tests::merge_epoch_phase ... ok
[INFO] [stdout] test crdt::item_state::tests::merge_epoch_phase_reopen_wins ... ok
[INFO] [stdout] test crdt::item_state::tests::merge_commutative ... ok
[INFO] [stdout] test crdt::item_state::tests::merge_deleted_lww ... ok
[INFO] [stdout] test crdt::item_state::tests::merge_gset_comments ... ok
[INFO] [stdout] test crdt::item_state::tests::merge_lww_fields ... ok
[INFO] [stdout] test crdt::item_state::tests::merge_orset_assignees ... ok
[INFO] [stdout] test crdt::item_state::tests::merge_idempotent ... ok
[INFO] [stdout] test crdt::item_state::tests::merge_timestamps ... ok
[INFO] [stdout] test crdt::item_state::tests::merge_with_default_is_identity ... ok
[INFO] [stdout] test crdt::item_state::tests::redact_event_is_noop ... ok
[INFO] [stdout] test crdt::item_state::tests::snapshot_event_is_noop ... ok
[INFO] [stdout] test crdt::item_state::tests::timestamps_track_min_max ... ok
[INFO] [stdout] test crdt::lww::tests::causal_earlier_loses ... ok
[INFO] [stdout] test crdt::lww::tests::concurrent_higher_wall_ts_wins ... ok
[INFO] [stdout] test crdt::lww::tests::concurrent_same_agent_higher_hash_wins ... ok
[INFO] [stdout] test crdt::lww::tests::concurrent_same_agent_lower_hash_loses ... ok
[INFO] [stdout] test crdt::lww::tests::concurrent_same_ts_higher_agent_wins ... ok
[INFO] [stdout] test crdt::lww::tests::concurrent_same_ts_lower_agent_loses ... ok
[INFO] [stdout] test crdt::lww::tests::display_shows_value ... ok
[INFO] [stdout] test crdt::lww::tests::equal_stamps_are_idempotent ... ok
[INFO] [stdout] test crdt::lww::tests::causal_later_wins ... ok
[INFO] [stdout] test crdt::lww::tests::concurrent_lower_wall_ts_loses ... ok
[INFO] [stdout] test crdt::lww::tests::identical_timestamps_different_agents ... ok
[INFO] [stdout] test crdt::lww::tests::merge_with_trace_disabled_by_default_has_no_payload ... ok
[INFO] [stdout] test crdt::lww::tests::numeric_value_type ... ok
[INFO] [stdout] test crdt::lww::tests::merge_chain_converges ... ok
[INFO] [stdout] test crdt::lww::tests::same_agent_concurrent_writes ... ok
[INFO] [stdout] test crdt::lww::tests::merge_with_trace_reports_decisive_step_when_enabled ... ok
[INFO] [stdout] test crdt::lww::tests::semilattice_associative ... ok
[INFO] [stdout] test crdt::lww::tests::semilattice_idempotent_self_merge ... ok
[INFO] [stdout] test crdt::lww::tests::semilattice_commutative ... ok
[INFO] [stdout] test crdt::lww::tests::serde_roundtrip ... ok
[INFO] [stdout] test crdt::orset::tests::add_multiple_elements ... ok
[INFO] [stdout] test crdt::orset::tests::add_remove_add_cycle ... ok
[INFO] [stdout] test crdt::orset::tests::add_single_element ... ok
[INFO] [stdout] test crdt::orset::tests::apply_add_op ... ok
[INFO] [stdout] test crdt::orset::tests::apply_remove_with_unobserved_tag_survives ... ok
[INFO] [stdout] test crdt::orset::tests::add_same_element_twice_with_different_tags ... ok
[INFO] [stdout] test crdt::orset::tests::apply_remove_op_with_observed_tags ... ok
[INFO] [stdout] test crdt::orset::tests::causal_remove_after_add_element_absent ... ok
[INFO] [stdout] test crdt::orset::tests::concurrent_add_remove_add_wins ... ok
[INFO] [stdout] test crdt::orset::tests::concurrent_remove_respects_dag_visibility ... ok
[INFO] [stdout] test crdt::orset::tests::merge_associative ... ok
[INFO] [stdout] test crdt::orset::tests::merge_commutative ... ok
[INFO] [stdout] test crdt::orset::tests::concurrent_adds_both_present ... ok
[INFO] [stdout] test crdt::orset::tests::merge_empty_sets ... ok
[INFO] [stdout] test crdt::orset::tests::merge_idempotent ... ok
[INFO] [stdout] test crdt::orset::tests::merge_with_empty_is_identity ... ok
[INFO] [stdout] test crdt::orset::tests::mixed_elements_concurrent_ops ... ok
[INFO] [stdout] test crdt::orset::tests::remove_base_state_item_succeeds ... ok
[INFO] [stdout] test crdt::orset::tests::remove_element ... ok
[INFO] [stdout] test crdt::orset::tests::remove_nonexistent_element ... ok
[INFO] [stdout] test crdt::orset::tests::multiple_add_remove_cycles ... ok
[INFO] [stdout] test crdt::orset::tests::new_orset_is_empty ... ok
[INFO] [stdout] test crdt::orset::tests::remove_then_concurrent_re_adds ... ok
[INFO] [stdout] test crdt::orset::tests::three_way_concurrent_add_remove ... ok
[INFO] [stdout] test crdt::state::tests::advance_forward ... ok
[INFO] [stdout] test crdt::state::tests::advance_same_phase_fails ... ok
[INFO] [stdout] test crdt::state::tests::concurrent_close_and_reopen_reopen_wins ... ok
[INFO] [stdout] test crdt::state::tests::display ... ok
[INFO] [stdout] test crdt::orset::tests::values_returns_distinct_present_elements ... ok
[INFO] [stdout] test crdt::state::tests::advance_backward_fails ... ok
[INFO] [stdout] test crdt::state::tests::merge_default_with_default ... ok
[INFO] [stdout] test crdt::state::tests::merge_higher_epoch_wins ... ok
[INFO] [stdout] test crdt::state::tests::merge_same_epoch_lower_phase_no_change ... ok
[INFO] [stdout] test crdt::state::tests::merge_same_epoch_same_phase_idempotent ... ok
[INFO] [stdout] test crdt::state::tests::multiple_reopens_monotonic_epochs ... ok
[INFO] [stdout] test crdt::state::tests::new_state_is_epoch_0_open ... ok
[INFO] [stdout] test crdt::state::tests::phase_display_and_parse ... ok
[INFO] [stdout] test crdt::state::tests::phase_rank_values ... ok
[INFO] [stdout] test crdt::state::tests::phase_ranking ... ok
[INFO] [stdout] test crdt::state::tests::merge_lower_epoch_no_change ... ok
[INFO] [stdout] test crdt::state::tests::merge_same_epoch_higher_phase_wins ... ok
[INFO] [stdout] test crdt::state::tests::phase_serde_roundtrip ... ok
[INFO] [stdout] test crdt::state::tests::reopen_from_archived ... ok
[INFO] [stdout] test crdt::state::tests::semilattice_commutative ... ok
[INFO] [stdout] test crdt::state::tests::semilattice_idempotent ... ok
[INFO] [stdout] test crdt::state::tests::reopen_increments_epoch ... ok
[INFO] [stdout] test crdt::state::tests::serde_roundtrip ... ok
[INFO] [stdout] test crdt::state::tests::semilattice_associative ... ok
[INFO] [stdout] test dag::graph::tests::ancestors_of_child ... ok
[INFO] [stdout] test dag::graph::tests::ancestors_of_merge_event ... ok
[INFO] [stdout] test dag::graph::tests::are_concurrent ... ok
[INFO] [stdout] test compact::tests::snapshot_payload_serde_roundtrip ... ok
[INFO] [stdout] test dag::graph::tests::contains_works ... ok
[INFO] [stdout] test compact::tests::verify_compaction_matches ... ok
[INFO] [stdout] test dag::graph::tests::ancestors_of_root_is_empty ... ok
[INFO] [stdout] test dag::graph::tests::ancestors_of_nonexistent_is_empty ... ok
[INFO] [stdout] test dag::graph::tests::descendants_of_fork_root ... ok
[INFO] [stdout] test dag::graph::tests::descendants_of_nonexistent_is_empty ... ok
[INFO] [stdout] test dag::graph::tests::descendants_of_root ... ok
[INFO] [stdout] test dag::graph::tests::descendants_of_tip_is_empty ... ok
[INFO] [stdout] test dag::graph::tests::duplicate_insert_is_noop ... ok
[INFO] [stdout] test dag::graph::tests::empty_dag ... ok
[INFO] [stdout] test dag::graph::tests::duplicate_in_from_events ... ok
[INFO] [stdout] test dag::graph::tests::fork_topology ... ok
[INFO] [stdout] test dag::graph::tests::get_event_returns_correct_event ... ok
[INFO] [stdout] test dag::graph::tests::get_nonexistent_returns_none ... ok
[INFO] [stdout] test dag::graph::tests::hashes_iterator ... ok
[INFO] [stdout] test dag::graph::tests::incremental_insert ... ok
[INFO] [stdout] test dag::graph::tests::linear_chain ... ok
[INFO] [stdout] test dag::graph::tests::is_ancestor_linear ... ok
[INFO] [stdout] test dag::graph::tests::merge_topology ... ok
[INFO] [stdout] test dag::graph::tests::out_of_order_insertion ... ok
[INFO] [stdout] test dag::graph::tests::multiple_roots ... ok
[INFO] [stdout] test dag::graph::tests::single_root ... ok
[INFO] [stdout] test dag::graph::tests::topological_order_empty ... ok
[INFO] [stdout] test dag::graph::tests::topological_order_is_deterministic ... ok
[INFO] [stdout] test dag::graph::tests::topological_order_linear_chain ... ok
[INFO] [stdout] test dag::graph::tests::topological_order_multiple_roots ... ok
[INFO] [stdout] test dag::graph::tests::topological_order_respects_causality ... ok
[INFO] [stdout] test dag::graph::tests::topological_order_single ... ok
[INFO] [stdout] test dag::hash::tests::test_hash_error_code_unknown_parent ... ok
[INFO] [stdout] test dag::hash::tests::test_hash_error_code_mismatch ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_chain_merge_event_two_parents ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_chain_merkle_cascade_property ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_chain_empty_slice ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_chain_order_independent ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_chain_single_root_event ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_chain_tampered_child_detected ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_chain_tampered_root_detected ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_chain_unknown_parent_detected ... ok
[INFO] [stdout] test dag::graph::tests::large_linear_chain ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_event_hash_deterministic ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_event_hash_tampered_agent ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_event_hash_tampered_content ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_event_hash_tampered_parents ... ok
[INFO] [stdout] test dag::lca::tests::all_lcas_criss_cross_merge ... ok
[INFO] [stdout] test dag::lca::tests::all_lcas_event_not_found ... ok
[INFO] [stdout] test dag::lca::tests::all_lcas_same_tip ... ok
[INFO] [stdout] test dag::lca::tests::all_lcas_simple_fork ... ok
[INFO] [stdout] test dag::lca::tests::lca_asymmetric_depth ... ok
[INFO] [stdout] test dag::lca::tests::lca_deep_fork ... ok
[INFO] [stdout] test dag::lca::tests::lca_diamond_after_fork ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_event_hash_valid ... ok
[INFO] [stdout] test dag::lca::tests::lca_disjoint_roots_returns_none ... ok
[INFO] [stdout] test dag::lca::tests::lca_event_not_found ... ok
[INFO] [stdout] test dag::lca::tests::lca_is_symmetric ... ok
[INFO] [stdout] test dag::lca::tests::lca_same_tip ... ok
[INFO] [stdout] test dag::lca::tests::lca_one_is_ancestor_of_other ... ok
[INFO] [stdout] test dag::lca::tests::lca_simple_fork ... ok
[INFO] [stdout] test dag::lca::tests::all_lcas_disjoint ... ok
[INFO] [stdout] test dag::replay::tests::replay_after_previous_merge ... ok
[INFO] [stdout] test dag::graph::tests::diamond_dag_with_updates ... ok
[INFO] [stdout] test dag::replay::tests::replay_deep_branches ... ok
[INFO] [stdout] test dag::replay::tests::replay_disjoint_roots_returns_error ... ok
[INFO] [stdout] test dag::replay::tests::replay_event_not_found ... ok
[INFO] [stdout] test dag::replay::tests::replay_for_item_filters_correctly ... ok
[INFO] [stdout] test dag::replay::tests::replay_handles_multiple_items ... ok
[INFO] [stdout] test dag::replay::tests::replay_one_ancestor_of_other ... ok
[INFO] [stdout] test dag::replay::tests::replay_same_tip_returns_empty ... ok
[INFO] [stdout] test dag::replay::tests::replay_merged_events_sorted_deterministically ... ok
[INFO] [stdout] test dag::replay::tests::replay_simple_fork ... ok
[INFO] [stdout] test dag::replay::tests::replay_symmetric ... ok
[INFO] [stdout] test dag::replay::tests::replay_performance_proportional_to_divergence ... ok
[INFO] [stdout] test dag::hash::tests::test_verify_chain_linear_chain ... ok
[INFO] [stdout] test db::fts::tests::fts_in_sync_after_projection ... ok
[INFO] [stdout] test db::fts::tests::search_bm25_empty_query_returns_empty ... ok
[INFO] [stdout] test db::fts::tests::rebuild_fts_index_restores_data ... ok
[INFO] [stdout] test db::fts::tests::fts_row_count_reports_correctly ... ok
[INFO] [stdout] test db::fts::tests::search_bm25_excludes_deleted ... ok
[INFO] [stdout] test db::fts::tests::search_bm25_finds_by_title ... ok
[INFO] [stdout] test db::fts::tests::search_bm25_prefix ... ok
[INFO] [stdout] test db::fts::tests::search_bm25_label_match ... ok
[INFO] [stdout] test db::fts::tests::search_bm25_stemming ... ok
[INFO] [stdout] test db::fts::tests::search_bm25_title_weighted_higher ... ok
[INFO] [stdout] test db::incremental::tests::check_incremental_safety_fails_schema_mismatch ... ok
[INFO] [stdout] test db::incremental::tests::check_incremental_safety_fails_missing_tracking_table ... ok
[INFO] [stdout] test db::fts::tests::search_bm25_limit ... ok
[INFO] [stdout] test db::incremental::tests::check_incremental_safety_passes_valid_db ... ok
[INFO] [stdout] test db::incremental::tests::incremental_apply_noop_when_up_to_date ... ok
[INFO] [stdout] test clock::ops::tests::event_anonymous_panics - should panic ... ok
[INFO] [stdout] test clock::ops::tests::fork_anonymous_panics - should panic ... ok
[INFO] [stdout] test db::incremental::tests::incremental_apply_on_empty_db_does_full_rebuild ... ok
[INFO] [stdout] test db::incremental::tests::validate_cursor_hash_fails_wrong_hash ... ok
[INFO] [stdout] test db::incremental::tests::incremental_apply_multiple_rounds ... ok
[INFO] [stdout] test db::incremental::tests::validate_cursor_hash_fails_zero_offset ... ok
[INFO] [stdout] test db::incremental::tests::read_hwm_returns_none_for_fresh_db ... ok
[INFO] [stdout] test db::incremental::tests::incremental_apply_force_full ... ok
[INFO] [stdout] test db::incremental::tests::validate_cursor_hash_finds_hash_near_offset ... ok
[INFO] [stdout] test db::migrations::tests::migrate_upgrades_from_v1_and_backfills_fts ... ok
[INFO] [stdout] test db::incremental::tests::write_and_read_hwm_roundtrip ... ok
[INFO] [stdout] test db::migrations::tests::migrate_empty_db_to_latest ... ok
[INFO] [stdout] test db::project::tests::batch_dedup_counts ... ok
[INFO] [stdout] test db::migrations::tests::migrate_is_idempotent ... ok
[INFO] [stdout] test db::project::tests::batch_reports_correct_stats ... ok
[INFO] [stdout] test db::incremental::tests::incremental_apply_matches_full_rebuild ... ok
[INFO] [stdout] test db::project::tests::clear_and_replay_produces_same_result ... ok
[INFO] [stdout] test db::project::tests::full_lifecycle_all_event_types ... ok
[INFO] [stdout] test db::project::tests::duplicate_events_are_skipped ... ok
[INFO] [stdout] test db::project::tests::events_on_missing_item_create_placeholder ... ok
[INFO] [stdout] test db::incremental::tests::schema_version_mismatch_triggers_full_rebuild ... ok
[INFO] [stdout] test db::incremental::tests::incremental_apply_picks_up_new_events ... ok
[INFO] [stdout] test db::project::tests::late_create_populates_placeholder ... ok
[INFO] [stdout] test db::project::tests::project_compact_sets_summary ... ok
[INFO] [stdout] test db::project::tests::project_assign_and_unassign ... ok
[INFO] [stdout] test db::project::tests::project_create_inserts_item ... ok
[INFO] [stdout] test db::project::tests::project_comment_inserts_row ... ok
[INFO] [stdout] test db::project::tests::project_create_inserts_labels ... ok
[INFO] [stdout] test db::project::tests::incremental_matches_full_replay ... ok
[INFO] [stdout] test db::project::tests::project_create_populates_fts ... ok
[INFO] [stdout] test db::project::tests::project_delete_soft_deletes ... ok
[INFO] [stdout] test db::project::tests::project_redact_records_and_blanks_comment ... ok
[INFO] [stdout] test db::project::tests::project_link_and_unlink ... ok
[INFO] [stdout] test db::project::tests::project_move_updates_state ... ok
[INFO] [stdout] test db::project::tests::project_update_description ... ok
[INFO] [stdout] test db::project::tests::project_update_labels ... ok
[INFO] [stdout] test db::project::tests::project_update_title ... ok
[INFO] [stdout] test db::project::tests::project_update_unknown_field_bumps_updated ... ok
[INFO] [stdout] test db::project::tests::project_update_title_updates_fts ... ok
[INFO] [stdout] test db::project::tests::project_snapshot_stores_json ... ok
[INFO] [stdout] test db::project::tests::project_event_updates_projection_cursor_for_file_backed_db ... ok
[INFO] [stdout] test db::query::tests::get_assignees_returns_sorted ... ok
[INFO] [stdout] test db::query::tests::get_comments_newest_first ... ok
[INFO] [stdout] test db::query::tests::event_counts_from_projected_events_are_counted_by_type_and_agent ... ok
[INFO] [stdout] test db::query::tests::count_items_with_filter ... ok
[INFO] [stdout] test db::query::tests::get_comments_paginated ... ok
[INFO] [stdout] test db::query::tests::get_children_returns_ordered ... ok
[INFO] [stdout] test db::project::tests::projector_new_creates_tracking_table_on_fresh_db ... ok
[INFO] [stdout] test db::query::tests::get_item_found ... ok
[INFO] [stdout] test db::query::tests::get_dependencies_and_dependents ... ok
[INFO] [stdout] test db::query::tests::get_labels_returns_sorted ... ok
[INFO] [stdout] test db::query::tests::item_counts_by_kind_and_urgency_include_expected_groups ... ok
[INFO] [stdout] test db::query::tests::get_item_excludes_deleted ... ok
[INFO] [stdout] test db::query::tests::get_item_not_found ... ok
[INFO] [stdout] test db::query::tests::list_items_excludes_deleted ... ok
[INFO] [stdout] test db::query::tests::item_exists_works ... ok
[INFO] [stdout] test db::query::tests::list_items_combined_filters ... ok
[INFO] [stdout] test db::query::tests::item_counts_by_state_groups_non_deleted_rows_only ... ok
[INFO] [stdout] test clock::serde::tests::random_stamps_roundtrip ... ok
[INFO] [stdout] test db::query::tests::list_items_filter_by_kind ... ok
[INFO] [stdout] test db::query::tests::list_items_filter_by_label ... ok
[INFO] [stdout] test db::query::tests::list_items_filter_by_assignee ... ok
[INFO] [stdout] test db::query::tests::list_items_filter_by_parent ... ok
[INFO] [stdout] test db::query::tests::list_items_filter_by_state ... ok
[INFO] [stdout] test db::query::tests::list_items_with_limit_and_offset ... ok
[INFO] [stdout] test db::query::tests::list_items_stable_tie_breaks_use_item_id ... ok
[INFO] [stdout] test db::query::tests::list_items_no_filter ... ok
[INFO] [stdout] test db::query::tests::list_items_priority_sort ... ok
[INFO] [stdout] test db::query::tests::list_labels_returns_counts ... ok
[INFO] [stdout] test db::query::tests::sort_order_parse_aliases ... ok
[INFO] [stdout] test db::query::tests::sort_order_parse_roundtrip ... ok
[INFO] [stdout] test db::query::tests::try_open_projection_corrupt_file ... ok
[INFO] [stdout] test db::query::tests::try_open_projection_missing_file ... ok
[INFO] [stdout] test db::query::tests::search_fts5_excludes_deleted ... ok
[INFO] [stdout] test db::query::tests::projection_cursor_roundtrip ... ok
[INFO] [stdout] test db::query::tests::list_items_filter_by_urgency ... ok
[INFO] [stdout] test db::query::tests::search_fts5_finds_by_title ... ok
[INFO] [stdout] test db::query::tests::search_fts5_prefix ... ok
[INFO] [stdout] test db::query::tests::search_fts5_stemming ... ok
[INFO] [stdout] test db::query::tests::search_fts5_limit ... ok
[INFO] [stdout] test db::query::tests::try_open_projection_valid_file ... ok
[INFO] [stdout] test db::rebuild::tests::rebuild_handles_duplicate_events ... ok
[INFO] [stdout] test db::rebuild::tests::rebuild_empty_event_log ... ok
[INFO] [stdout] test db::rebuild::tests::rebuild_updates_projection_cursor ... ok
[INFO] [stdout] test db::rebuild::tests::rebuild_populates_fts ... ok
[INFO] [stdout] test db::rebuild::tests::rebuild_with_bd_prefix_events ... ok
[INFO] [stdout] test db::schema::tests::fts_supports_weighted_bm25_queries ... ok
[INFO] [stdout] test db::rebuild::tests::rebuild_with_events ... ok
[INFO] [stdout] test db::tests::mark_projection_dirty_creates_marker_file ... ok
[INFO] [stdout] test db::rebuild::tests::rebuild_replaces_existing_db ... ok
[INFO] [stdout] test db::tests::ensure_projection_rebuild_clears_dirty_marker ... ok
[INFO] [stdout] test error::tests::all_codes_are_unique ... ok
[INFO] [stdout] test error::tests::all_codes_have_hints ... ok
[INFO] [stdout] test error::tests::all_codes_have_messages ... ok
[INFO] [stdout] test error::tests::bones_error_from_config_error ... ok
[INFO] [stdout] test error::tests::bones_error_from_event_error ... ok
[INFO] [stdout] test error::tests::bones_error_from_io_error ... ok
[INFO] [stdout] test error::tests::bones_error_from_lock_error ... ok
[INFO] [stdout] test error::tests::bones_error_from_model_error ... ok
[INFO] [stdout] test error::tests::bones_error_from_projection_error ... ok
[INFO] [stdout] test error::tests::bones_error_from_serde_json_error ... ok
[INFO] [stdout] test error::tests::bones_error_from_std_io_error_generic ... ok
[INFO] [stdout] test error::tests::bones_error_from_std_io_error_permission ... ok
[INFO] [stdout] test error::tests::bones_error_to_json_error ... ok
[INFO] [stdout] test error::tests::code_format_is_machine_friendly ... ok
[INFO] [stdout] test error::tests::config_error_not_found ... ok
[INFO] [stdout] test error::tests::config_error_parse_failed ... ok
[INFO] [stdout] test error::tests::display_format_has_error_cause_fix ... ok
[INFO] [stdout] test error::tests::event_error_manifest_mismatch ... ok
[INFO] [stdout] test error::tests::event_error_oversized_payload ... ok
[INFO] [stdout] test error::tests::event_error_unknown_type ... ok
[INFO] [stdout] test error::tests::every_error_variant_has_suggestion ... ok
[INFO] [stdout] test error::tests::io_error_disk_full ... ok
[INFO] [stdout] test error::tests::io_error_permission_denied ... ok
[INFO] [stdout] test error::tests::json_error_serialization_stable ... ok
[INFO] [stdout] test error::tests::lock_error_already_locked ... ok
[INFO] [stdout] test error::tests::model_error_ambiguous_id ... ok
[INFO] [stdout] test error::tests::model_error_cycle_detected ... ok
[INFO] [stdout] test error::tests::model_error_invalid_enum_value ... ok
[INFO] [stdout] test error::tests::model_error_item_not_found ... ok
[INFO] [stdout] test error::tests::projection_error_db_missing ... ok
[INFO] [stdout] test error::tests::projection_error_fts_missing ... ok
[INFO] [stdout] test event::canonical::tests::array_of_objects_sorted ... ok
[INFO] [stdout] test event::canonical::tests::array_preserves_order ... ok
[INFO] [stdout] test db::rebuild::tests::rebuild_is_deterministic ... ok
[INFO] [stdout] test event::canonical::tests::boolean_values ... ok
[INFO] [stdout] test event::canonical::tests::canonicalize_json_str_invalid ... ok
[INFO] [stdout] test event::canonical::tests::canonicalize_json_str_valid ... ok
[INFO] [stdout] test event::canonical::tests::create_event_payload_canonical ... ok
[INFO] [stdout] test event::canonical::tests::empty_array ... ok
[INFO] [stdout] test event::canonical::tests::deeply_nested_sorting ... ok
[INFO] [stdout] test event::canonical::tests::float_value ... ok
[INFO] [stdout] test event::canonical::tests::idempotent ... ok
[INFO] [stdout] test event::canonical::tests::integer_value ... ok
[INFO] [stdout] test event::canonical::tests::mixed_types ... ok
[INFO] [stdout] test event::canonical::tests::nested_object_keys_sorted ... ok
[INFO] [stdout] test event::canonical::tests::empty_object ... ok
[INFO] [stdout] test event::canonical::tests::no_whitespace ... ok
[INFO] [stdout] test event::canonical::tests::null_value ... ok
[INFO] [stdout] test event::canonical::tests::string_value ... ok
[INFO] [stdout] test event::canonical::tests::object_keys_sorted ... ok
[INFO] [stdout] test event::canonical::tests::unicode_string ... ok
[INFO] [stdout] test event::canonical::tests::string_with_escapes ... ok
[INFO] [stdout] test event::data::tests::all_payload_types_preserve_unknown_fields ... ok
[INFO] [stdout] test event::data::tests::assign_action_display_fromstr_roundtrip ... ok
[INFO] [stdout] test event::data::tests::assign_action_rejects_unknown ... ok
[INFO] [stdout] test event::data::tests::assign_data_roundtrip ... ok
[INFO] [stdout] test event::data::tests::assign_data_unassign ... ok
[INFO] [stdout] test event::data::tests::comment_data_roundtrip ... ok
[INFO] [stdout] test event::data::tests::compact_data_roundtrip ... ok
[INFO] [stdout] test event::data::tests::create_data_minimal ... ok
[INFO] [stdout] test event::data::tests::create_data_full_roundtrip ... ok
[INFO] [stdout] test event::data::tests::create_data_plan_example ... ok
[INFO] [stdout] test event::data::tests::delete_data_empty ... ok
[INFO] [stdout] test event::data::tests::create_data_with_unknown_fields ... ok
[INFO] [stdout] test event::data::tests::delete_data_with_reason ... ok
[INFO] [stdout] test event::data::tests::deserialize_for_assign ... ok
[INFO] [stdout] test event::data::tests::deserialize_for_comment ... ok
[INFO] [stdout] test event::data::tests::deserialize_for_compact ... ok
[INFO] [stdout] test event::data::tests::deserialize_for_create ... ok
[INFO] [stdout] test event::data::tests::deserialize_for_delete ... ok
[INFO] [stdout] test event::data::tests::deserialize_for_error_includes_event_type ... ok
[INFO] [stdout] test event::data::tests::deserialize_for_error_missing_required_field ... ok
[INFO] [stdout] test event::data::tests::deserialize_for_link ... ok
[INFO] [stdout] test event::data::tests::deserialize_for_move ... ok
[INFO] [stdout] test event::data::tests::deserialize_for_redact ... ok
[INFO] [stdout] test event::data::tests::deserialize_for_snapshot ... ok
[INFO] [stdout] test event::data::tests::deserialize_for_unlink ... ok
[INFO] [stdout] test event::data::tests::deserialize_for_update ... ok
[INFO] [stdout] test event::data::tests::link_data_blocks ... ok
[INFO] [stdout] test event::data::tests::link_data_related ... ok
[INFO] [stdout] test event::data::tests::move_data_roundtrip ... ok
[INFO] [stdout] test event::data::tests::move_data_with_reason ... ok
[INFO] [stdout] test event::data::tests::move_data_without_reason ... ok
[INFO] [stdout] test db::schema::tests::query_plan_uses_triage_index ... ok
[INFO] [stdout] test event::data::tests::redact_data_roundtrip ... ok
[INFO] [stdout] test event::data::tests::snapshot_data_roundtrip ... ok
[INFO] [stdout] test event::data::tests::unlink_data_roundtrip ... ok
[INFO] [stdout] test event::data::tests::unlink_data_without_link_type ... ok
[INFO] [stdout] test event::data::tests::update_data_array_field ... ok
[INFO] [stdout] test event::hash_text::tests::accepts_legacy_hex_payload ... ok
[INFO] [stdout] test event::hash_text::tests::base64_roundtrip_for_blake3_digest ... ok
[INFO] [stdout] test event::hash_text::tests::rejects_invalid_payloads ... ok
[INFO] [stdout] test event::migrate::tests::migrate_current_version_passthrough ... ok
[INFO] [stdout] test event::migrate::tests::migrate_v1_passthrough ... ok
[INFO] [stdout] test event::parser::tests::compute_hash_changes_with_different_fields ... ok
[INFO] [stdout] test event::parser::tests::compute_hash_deterministic ... ok
[INFO] [stdout] test event::migrate::tests::migrate_unknown_version_errors ... ok
[INFO] [stdout] test event::parser::tests::current_version_constant ... ok
[INFO] [stdout] test event::parser::tests::detect_version_empty_version ... ok
[INFO] [stdout] test event::parser::tests::detect_version_future_version_errors ... ok
[INFO] [stdout] test event::parser::tests::detect_version_invalid_header ... ok
[INFO] [stdout] test event::parser::tests::detect_version_non_numeric_version ... ok
[INFO] [stdout] test event::parser::tests::detect_version_valid_v1 ... ok
[INFO] [stdout] test event::parser::tests::detect_version_with_leading_whitespace ... ok
[INFO] [stdout] test event::parser::tests::error_display_field_count ... ok
[INFO] [stdout] test event::parser::tests::error_display_hash_mismatch ... ok
[INFO] [stdout] test event::data::tests::update_data_string_field ... ok
[INFO] [stdout] test event::parser::tests::field_comment_constant ... ok
[INFO] [stdout] test event::parser::tests::invalid_blake3_hashes ... ok
[INFO] [stdout] test event::parser::tests::no_panic_on_garbage ... ok
[INFO] [stdout] test event::parser::tests::parse_all_event_types ... ok
[INFO] [stdout] test event::parser::tests::parse_blank_line ... ok
[INFO] [stdout] test event::parser::tests::parse_comment_line ... ok
[INFO] [stdout] test event::parser::tests::parse_empty_itc ... ok
[INFO] [stdout] test event::parser::tests::parse_comment_with_whitespace_prefix ... ok
[INFO] [stdout] test event::parser::tests::parse_empty_agent ... ok
[INFO] [stdout] test event::parser::tests::parse_invalid_event_hash_format ... ok
[INFO] [stdout] test event::parser::tests::parse_hash_mismatch ... ok
[INFO] [stdout] test event::parser::tests::parse_invalid_event_type ... ok
[INFO] [stdout] test event::parser::tests::parse_invalid_item_id ... ok
[INFO] [stdout] test event::parser::tests::parse_invalid_json ... ok
[INFO] [stdout] test event::parser::tests::parse_invalid_parent_hash_no_prefix ... ok
[INFO] [stdout] test event::parser::tests::parse_invalid_timestamp_float ... ok
[INFO] [stdout] test event::parser::tests::parse_invalid_timestamp_not_number ... ok
[INFO] [stdout] test event::parser::tests::parse_json_schema_mismatch ... ok
[INFO] [stdout] test event::parser::tests::parse_line_with_crlf ... ok
[INFO] [stdout] test event::parser::tests::parse_lines_empty_input ... ok
[INFO] [stdout] test event::parser::tests::parse_line_with_trailing_newline ... ok
[INFO] [stdout] test event::parser::tests::parse_lines_future_version_rejected ... ok
[INFO] [stdout] test event::parser::tests::parse_lines_error_reports_line_number ... ok
[INFO] [stdout] test event::parser::tests::parse_lines_mixed_content ... ok
[INFO] [stdout] test event::parser::tests::parse_lines_skips_unknown_event_type ... ok
[INFO] [stdout] test event::parser::tests::parse_invalid_parent_hash_non_hex ... ok
[INFO] [stdout] test event::parser::tests::parse_negative_timestamp ... ok
[INFO] [stdout] test event::parser::tests::parse_lines_unknown_type_does_not_stop_parsing ... ok
[INFO] [stdout] test event::parser::tests::parse_lines_version_header_v1_accepted ... ok
[INFO] [stdout] test event::parser::tests::parse_newline_only ... ok
[INFO] [stdout] test event::parser::tests::parse_valid_create_event ... ok
[INFO] [stdout] test event::parser::tests::parse_valid_event_with_multiple_parents ... ok
[INFO] [stdout] test event::parser::tests::parse_valid_move_event_with_parent ... ok
[INFO] [stdout] test event::parser::tests::parse_wrong_field_count_too_few ... ok
[INFO] [stdout] test event::parser::tests::parse_wrong_field_count_too_many ... ok
[INFO] [stdout] test event::parser::tests::partial_parse_bad_event_type ... ok
[INFO] [stdout] test event::parser::tests::partial_parse_blank ... ok
[INFO] [stdout] test event::parser::tests::partial_parse_comment ... ok
[INFO] [stdout] test event::parser::tests::partial_parse_does_not_validate_json ... ok
[INFO] [stdout] test event::parser::tests::partial_parse_valid_line ... ok
[INFO] [stdout] test event::parser::tests::partial_parse_wrong_field_count ... ok
[INFO] [stdout] test event::parser::tests::partial_parse_bad_timestamp ... ok
[INFO] [stdout] test db::tests::open_projection_runs_migrations ... ok
[INFO] [stdout] test event::parser::tests::roundtrip_move_event ... ok
[INFO] [stdout] test event::parser::tests::roundtrip_create_event ... ok
[INFO] [stdout] test event::tests::event_display ... ok
[INFO] [stdout] test event::tests::event_display_all_data_types ... ok
[INFO] [stdout] test event::tests::event_parents_str_empty ... ok
[INFO] [stdout] test event::tests::event_parents_str_multiple ... ok
[INFO] [stdout] test event::tests::event_parents_str_single ... ok
[INFO] [stdout] test event::parser::tests::shard_header_constant ... ok
[INFO] [stdout] test event::parser::tests::valid_blake3_hashes ... ok
[INFO] [stdout] test event::tests::event_serde_json_roundtrip ... ok
[INFO] [stdout] test event::tests::event_serde_json_roundtrip_with_parents ... ok
[INFO] [stdout] test event::tests::event_struct_fields ... ok
[INFO] [stdout] test event::tests::event_serde_all_types_roundtrip ... ok
[INFO] [stdout] test event::types::tests::display_fromstr_roundtrip ... ok
[INFO] [stdout] test event::types::tests::fromstr_all_types ... ok
[INFO] [stdout] test event::types::tests::fromstr_rejects_bare_verb ... ok
[INFO] [stdout] test event::types::tests::fromstr_rejects_empty ... ok
[INFO] [stdout] test event::types::tests::fromstr_rejects_unknown ... ok
[INFO] [stdout] test event::types::tests::error_display_includes_valid_options ... ok
[INFO] [stdout] test event::types::tests::serde_rejects_unknown_type ... ok
[INFO] [stdout] test event::validate::tests::truncate_line_long ... ok
[INFO] [stdout] test event::validate::tests::truncate_line_short ... ok
[INFO] [stdout] test event::validate::tests::validate_all_empty_dir ... ok
[INFO] [stdout] test event::validate::tests::validate_all_loads_manifests ... ok
[INFO] [stdout] test db::tests::open_projection_sets_wal_busy_timeout_and_fk ... ok
[INFO] [stdout] test event::validate::tests::validate_all_multiple_shards ... ok
[INFO] [stdout] test event::types::tests::all_contains_exactly_11_types ... ok
[INFO] [stdout] test event::types::tests::display_all_types ... ok
[INFO] [stdout] test event::types::tests::serde_json_roundtrip ... ok
[INFO] [stdout] test event::validate::tests::validate_all_nonexistent_dir ... ok
[INFO] [stdout] test db::schema::tests::query_plan_uses_reverse_dependency_index ... ok
[INFO] [stdout] test event::validate::tests::validate_event_bad_timestamp ... ok
[INFO] [stdout] test event::validate::tests::validate_event_bad_parent_hash ... ok
[INFO] [stdout] test event::validate::tests::validate_event_bad_hash_format ... ok
[INFO] [stdout] test event::validate::tests::validate_event_blank_line ... ok
[INFO] [stdout] test event::validate::tests::validate_event_comment_line ... ok
[INFO] [stdout] test event::validate::tests::validate_all_skips_non_shard_files ... ok
[INFO] [stdout] test event::validate::tests::validate_event_empty_agent ... ok
[INFO] [stdout] test event::validate::tests::validate_event_empty_itc ... ok
[INFO] [stdout] test event::validate::tests::validate_event_bad_field_count ... ok
[INFO] [stdout] test event::validate::tests::validate_event_no_panic_on_garbage ... ok
[INFO] [stdout] test event::validate::tests::validate_event_hash_mismatch ... ok
[INFO] [stdout] test event::validate::tests::validate_event_invalid_item_id ... ok
[INFO] [stdout] test event::validate::tests::validate_event_invalid_json ... ok
[INFO] [stdout] test event::validate::tests::validate_event_unknown_event_type ... ok
[INFO] [stdout] test event::validate::tests::validate_event_schema_mismatch ... ok
[INFO] [stdout] test event::validate::tests::validate_event_valid_with_parents ... ok
[INFO] [stdout] test event::validate::tests::validate_shard_invalid_utf8 ... ok
[INFO] [stdout] test event::validate::tests::validate_shard_detects_truncation ... ok
[INFO] [stdout] test event::validate::tests::validate_event_valid_create ... ok
[INFO] [stdout] test event::validate::tests::validate_shard_empty_file ... ok
[INFO] [stdout] test event::validate::tests::validate_event_oversized_payload ... ok
[INFO] [stdout] test event::validate::tests::validate_shard_missing_file ... ok
[INFO] [stdout] test event::validate::tests::validate_shard_manifest_hash_mismatch ... ok
[INFO] [stdout] test event::validate::tests::validate_shard_only_comments ... ok
[INFO] [stdout] test event::validate::tests::validate_shard_manifest_match ... ok
[INFO] [stdout] test event::validate::tests::validate_shard_multiple_errors ... ok
[INFO] [stdout] test event::validate::tests::validate_shard_with_errors_preserves_valid ... ok
[INFO] [stdout] test db::schema::tests::query_plan_uses_label_lookup_index ... ok
[INFO] [stdout] test event::validate::tests::validate_shard_manifest_size_mismatch ... ok
[INFO] [stdout] test event::validate::tests::validate_shard_valid_file ... ok
[INFO] [stdout] test event::validate::tests::validation_report_is_ok_with_truncation ... ok
[INFO] [stdout] test event::validate::tests::validation_report_total ... ok
[INFO] [stdout] test event::writer::tests::all_event_types_serialize ... ok
[INFO] [stdout] test event::writer::tests::deterministic_output ... ok
[INFO] [stdout] test event::writer::tests::canonical_json_keys_sorted ... ok
[INFO] [stdout] test event::writer::tests::compute_event_hash_deterministic ... ok
[INFO] [stdout] test event::writer::tests::shard_header_format ... ok
[INFO] [stdout] test event::writer::tests::to_tsjson_line_create_event ... ok
[INFO] [stdout] test event::writer::tests::to_tsjson_line_multiple_parents ... ok
[INFO] [stdout] test event::writer::tests::to_tsjson_line_with_parents ... ok
[INFO] [stdout] test event::writer::tests::compute_event_hash_changes_with_data ... ok
[INFO] [stdout] test event::writer::tests::empty_extra_fields_not_in_json ... ok
[INFO] [stdout] test event::writer::tests::write_event_sets_hash ... ok
[INFO] [stdout] test event::writer::tests::json_payload_no_whitespace ... ok
[INFO] [stdout] test event::writer::tests::write_line_has_trailing_newline ... ok
[INFO] [stdout] test graph::blocking::tests::blocked_by_type_alias_works ... ok
[INFO] [stdout] test graph::blocking::tests::blocked_item_is_not_ready ... ok
[INFO] [stdout] test event::writer::tests::write_event_roundtrip_hash ... ok
[INFO] [stdout] test graph::blocking::tests::chain_blocking_all_after_first_blocked ... ok
[INFO] [stdout] test graph::blocking::tests::concurrent_add_wins_over_remove ... ok
[INFO] [stdout] test graph::blocking::tests::concurrent_link_and_unlink_add_wins ... ok
[INFO] [stdout] test graph::blocking::tests::cross_goal_blocking_works ... ok
[INFO] [stdout] test graph::blocking::tests::cross_goal_blocker_not_in_states_still_blocks ... ok
[INFO] [stdout] test graph::blocking::tests::empty_graph_from_empty_states ... ok
[INFO] [stdout] test graph::blocking::tests::get_blockers_for_unknown_item_returns_empty ... ok
[INFO] [stdout] test graph::blocking::tests::link_then_unlink_removes_blocker ... ok
[INFO] [stdout] test graph::blocking::tests::item_with_both_blocking_and_relates ... ok
[INFO] [stdout] test graph::blocking::tests::multiple_blockers ... ok
[INFO] [stdout] test graph::blocking::tests::related_type_alias_works ... ok
[INFO] [stdout] test graph::blocking::tests::standalone_is_blocked ... ok
[INFO] [stdout] test graph::blocking::tests::ready_items_excludes_blocked ... ok
[INFO] [stdout] test graph::blocking::tests::standalone_ready_items ... ok
[INFO] [stdout] test graph::blocking::tests::related_links_do_not_block ... ok
[INFO] [stdout] test graph::blocking::tests::unblocked_item_is_ready ... ok
[INFO] [stdout] test graph::blocking::tests::standalone_get_blockers ... ok
[INFO] [stdout] test graph::cycles::tests::cycle_warning_large_cycle_display ... ok
[INFO] [stdout] test graph::cycles::tests::cycle_warning_mutual_block_display ... ok
[INFO] [stdout] test graph::blocking::tests::unlink_without_link_is_noop ... ok
[INFO] [stdout] test graph::cycles::tests::cycle_warning_self_loop_display ... ok
[INFO] [stdout] test graph::cycles::tests::find_all_cycles_dag_has_none ... ok
[INFO] [stdout] test graph::cycles::tests::adding_duplicate_edge_to_existing_blocker_no_new_cycle ... ok
[INFO] [stdout] test graph::cycles::tests::find_all_cycles_self_loop ... ok
[INFO] [stdout] test graph::cycles::tests::has_cycles_false_for_empty_graph ... ok
[INFO] [stdout] test graph::cycles::tests::cycle_in_subgraph_detected ... ok
[INFO] [stdout] test graph::cycles::tests::find_all_cycles_mutual_block ... ok
[INFO] [stdout] test graph::cycles::tests::find_all_cycles_empty_graph ... ok
[INFO] [stdout] test graph::cycles::tests::has_cycles_false_for_dag ... ok
[INFO] [stdout] test graph::cycles::tests::empty_graph_no_cycle ... ok
[INFO] [stdout] test graph::cycles::tests::find_all_cycles_multiple_disjoint ... ok
[INFO] [stdout] test graph::cycles::tests::has_cycles_true_for_mutual_block ... ok
[INFO] [stdout] test graph::cycles::tests::has_cycles_true_for_self_loop ... ok
[INFO] [stdout] test graph::cycles::tests::integration_with_crdt_state ... ok
[INFO] [stdout] test graph::cycles::tests::no_cycle_diamond_dag ... ok
[INFO] [stdout] test graph::cycles::tests::mutual_block_detected ... ok
[INFO] [stdout] test graph::cycles::tests::no_cycle_in_dag ... ok
[INFO] [stdout] test graph::cycles::tests::large_cycle_detected ... ok
[INFO] [stdout] test graph::cycles::tests::self_loop_detected ... ok
[INFO] [stdout] test graph::cycles::tests::no_cycle_parallel_chains ... ok
[INFO] [stdout] test graph::cycles::tests::three_node_cycle_detected ... ok
[INFO] [stdout] test graph::cycles::tests::has_cycles_true_for_large_cycle ... ok
[INFO] [stdout] test graph::cycles::tests::very_large_cycle_detected ... ok
[INFO] [stdout] test graph::hierarchy::tests::ancestors_not_found ... ok
[INFO] [stdout] test graph::hierarchy::tests::ancestors_three_levels ... ok
[INFO] [stdout] test graph::hierarchy::tests::ancestors_one_level ... ok
[INFO] [stdout] test graph::hierarchy::tests::ancestors_no_parent ... ok
[INFO] [stdout] test graph::hierarchy::tests::direct_progress_empty_goal ... ok
[INFO] [stdout] test graph::hierarchy::tests::direct_progress_all_done ... ok
[INFO] [stdout] test graph::hierarchy::tests::direct_progress_excludes_deleted_children ... ok
[INFO] [stdout] test graph::hierarchy::tests::goal_progress_all_done ... ok
[INFO] [stdout] test graph::hierarchy::tests::goal_progress_display ... ok
[INFO] [stdout] test graph::hierarchy::tests::goal_progress_percent_half ... ok
[INFO] [stdout] test graph::hierarchy::tests::goal_progress_percent_zero_total_is_100 ... ok
[INFO] [stdout] test graph::hierarchy::tests::goal_progress_remaining ... ok
[INFO] [stdout] test graph::hierarchy::tests::goal_progress_zero ... ok
[INFO] [stdout] test graph::hierarchy::tests::hierarchy_error_display_cycle ... ok
[INFO] [stdout] test graph::hierarchy::tests::hierarchy_error_display_not_a_goal ... ok
[INFO] [stdout] test graph::hierarchy::tests::hierarchy_error_display_not_found ... ok
[INFO] [stdout] test graph::hierarchy::tests::direct_progress_all_open ... ok
[INFO] [stdout] test graph::hierarchy::tests::direct_progress_mixed_states ... ok
[INFO] [stdout] test graph::hierarchy::tests::direct_progress_not_found_returns_error ... ok
[INFO] [stdout] test graph::hierarchy::tests::direct_progress_not_a_goal_returns_error ... ok
[INFO] [stdout] test graph::hierarchy::tests::nested_progress_deeply_nested ... ok
[INFO] [stdout] test graph::hierarchy::tests::nested_progress_empty_subgoal_contributes_nothing ... ok
[INFO] [stdout] test graph::hierarchy::tests::nested_progress_not_found ... ok
[INFO] [stdout] test graph::hierarchy::tests::nested_progress_flat_goal ... ok
[INFO] [stdout] test graph::hierarchy::tests::nested_progress_rolls_up_through_subgoals ... ok
[INFO] [stdout] test graph::hierarchy::tests::nested_progress_not_a_goal ... ok
[INFO] [stdout] test graph::hierarchy::tests::subtree_bfs_order_root_first ... ok
[INFO] [stdout] test graph::hierarchy::tests::subtree_with_children ... ok
[INFO] [stdout] test graph::hierarchy::tests::validate_reparent_item_not_found ... ok
[INFO] [stdout] test graph::hierarchy::tests::validate_reparent_detects_cycle_direct ... ok
[INFO] [stdout] test graph::hierarchy::tests::validate_reparent_bug_under_goal_ok ... ok
[INFO] [stdout] test graph::hierarchy::tests::validate_reparent_detects_cycle_indirect ... ok
[INFO] [stdout] test graph::hierarchy::tests::subtree_single_node ... ok
[INFO] [stdout] test graph::hierarchy::tests::validate_reparent_ok ... ok
[INFO] [stdout] test graph::hierarchy::tests::validate_reparent_move_to_different_goal ... ok
[INFO] [stdout] test graph::hierarchy::tests::validate_reparent_parent_not_found ... ok
[INFO] [stdout] test lock::tests::lock_error_maps_to_machine_code ... ok
[INFO] [stdout] test graph::hierarchy::tests::validate_reparent_to_non_goal_rejected ... ok
[INFO] [stdout] test graph::hierarchy::tests::validate_reparent_self_cycle ... ok
[INFO] [stdout] test lock::tests::lock_release_allows_follow_up_lock ... ok
[INFO] [stdout] test lock::tests::shard_lock_allows_acquire_and_release ... ok
[INFO] [stdout] test lock::tests::sqlite_read_locks_are_compatible ... ok
[INFO] [stdout] test model::goal::tests::auto_close_emits_move_event_when_all_children_complete ... ok
[INFO] [stdout] test lock::tests::contention_is_resolved_after_writer_releases ... ok
[INFO] [stdout] test model::goal::tests::auto_close_is_order_independent ... ok
[INFO] [stdout] test lock::tests::shard_lock_times_out_when_held ... ok
[INFO] [stdout] test model::goal::tests::auto_close_respects_goal_override_label ... ok
[INFO] [stdout] test model::goal::tests::auto_reopen_respects_project_policy ... ok
[INFO] [stdout] test model::goal::tests::circular_containment_detects_cycle ... ok
[INFO] [stdout] test model::goal::tests::policy_defaults_and_project_mapping ... ok
[INFO] [stdout] test model::goal::tests::policy_override_from_labels_and_fields ... ok
[INFO] [stdout] test model::goal::tests::circular_containment_rejects_non_goal_parent ... ok
[INFO] [stdout] test model::goal::tests::progress_counts_states_and_blocked_children ... ok
[INFO] [stdout] test model::item::tests::display_parse_roundtrips ... ok
[INFO] [stdout] test model::item::tests::enum_json_roundtrips ... ok
[INFO] [stdout] test model::item::tests::parse_rejects_unknown_values ... ok
[INFO] [stdout] test model::item::tests::state_transition_rules ... ok
[INFO] [stdout] test lock::tests::sqlite_write_blocks_readers ... ok
[INFO] [stdout] test model::item::tests::work_item_fields_default_is_stable ... ok
[INFO] [stdout] test model::item_id::tests::as_ref_str ... ok
[INFO] [stdout] test model::item_id::tests::child_creates_valid_id ... ok
[INFO] [stdout] test model::item_id::tests::display_fromstr_roundtrip ... ok
[INFO] [stdout] test model::item_id::tests::display_fromstr_roundtrip_child ... ok
[INFO] [stdout] test model::item_id::tests::error_display ... ok
[INFO] [stdout] test model::item_id::tests::generate_avoids_collisions ... ok
[INFO] [stdout] test model::item_id::tests::generate_deterministic_with_same_seed ... ok
[INFO] [stdout] test model::item_id::tests::generate_different_seeds_different_ids ... ok
[INFO] [stdout] test model::item_id::tests::generate_produces_valid_id ... ok
[INFO] [stdout] test model::item_id::tests::grandchild_creation ... ok
[INFO] [stdout] test model::item_id::tests::generate_adaptive_length_grows ... ok
[INFO] [stdout] test model::item_id::tests::hash_set_deduplication ... ok
[INFO] [stdout] test model::item_id::tests::into_string ... ok
[INFO] [stdout] test model::item_id::tests::is_child_of_works ... ok
[INFO] [stdout] test model::item_id::tests::new_unchecked_trusts_caller ... ok
[INFO] [stdout] test model::item_id::tests::ordering_is_lexicographic ... ok
[INFO] [stdout] test model::item_id::tests::parent_of_child ... ok
[INFO] [stdout] test model::item_id::tests::parent_of_grandchild ... ok
[INFO] [stdout] test model::item_id::tests::parent_of_root_is_none ... ok
[INFO] [stdout] test model::item_id::tests::parse_accepts_all_letter_hash ... ok
[INFO] [stdout] test model::item_id::tests::parse_accepts_longer_hash_with_digit ... ok
[INFO] [stdout] test model::item_id::tests::parse_normalises_case ... ok
[INFO] [stdout] test model::item_id::tests::parse_rejects_invalid_format ... ok
[INFO] [stdout] test model::item_id::tests::parse_rejects_wrong_prefix ... ok
[INFO] [stdout] test model::item_id::tests::parse_trims_whitespace ... ok
[INFO] [stdout] test model::item_id::tests::parse_valid_child_id ... ok
[INFO] [stdout] test model::item_id::tests::parse_valid_grandchild_id ... ok
[INFO] [stdout] test model::item_id::tests::parse_valid_root_id ... ok
[INFO] [stdout] test model::item_id::tests::resolve_ambiguous ... ok
[INFO] [stdout] test model::item_id::tests::resolve_bare_hash ... ok
[INFO] [stdout] test model::item_id::tests::resolve_exact ... ok
[INFO] [stdout] test model::item_id::tests::resolve_not_found ... ok
[INFO] [stdout] test model::item_id::tests::resolve_substring ... ok
[INFO] [stdout] test model::item_id::tests::serde_json_roundtrip ... ok
[INFO] [stdout] test model::item_id::tests::serde_rejects_invalid ... ok
[INFO] [stdout] test model::goal::tests::auto_reopen_emits_move_event_when_done_goal_gets_active_child ... ok
[INFO] [stdout] test recovery::tests::auto_recover_nonexistent_project ... ok
[INFO] [stdout] test model::goal::tests::circular_containment_enforces_depth_safety_limit ... ok
[INFO] [stdout] test model::goal::tests::progress_updates_after_reparenting_and_state_changes ... ok
[INFO] [stdout] test recovery::tests::cache_recovery_deletes_file ... ok
[INFO] [stdout] test recovery::tests::cache_recovery_nonexistent_file ... ok
[INFO] [stdout] test graph::cycles::tests::performance_large_dag_no_cycle ... ok
[INFO] [stdout] test recovery::tests::corrupt_shard_clean_file ... ok
[INFO] [stdout] test recovery::tests::corrupt_shard_empty_file ... ok
[INFO] [stdout] test recovery::tests::corrupt_shard_nonexistent_file ... ok
[INFO] [stdout] test recovery::tests::auto_recover_rebuilds_missing_db ... ok
[INFO] [stdout] test recovery::tests::corrupt_shard_with_bad_data ... ok
[INFO] [stdout] test recovery::tests::missing_db_no_events_dir ... ok
[INFO] [stdout] test db::rebuild::tests::rebuild_performance_reasonable ... ok
[INFO] [stdout] test recovery::tests::auto_recover_cleans_corrupt_cache ... ok
[INFO] [stdout] test recovery::tests::auto_recover_healthy_project ... ok
[INFO] [stdout] test recovery::tests::corrupt_db_is_backed_up_before_rebuild ... ok
[INFO] [stdout] test recovery::tests::partial_write_empty_file ... ok
[INFO] [stdout] test recovery::tests::partial_write_clean_file ... ok
[INFO] [stdout] test recovery::tests::partial_write_no_complete_lines ... ok
[INFO] [stdout] test recovery::tests::partial_write_nonexistent_file ... ok
[INFO] [stdout] test recovery::tests::recovery_action_debug ... ok
[INFO] [stdout] test recovery::tests::recovery_error_display ... ok
[INFO] [stdout] test recovery::tests::auto_recover_repairs_torn_write ... ok
[INFO] [stdout] test recovery::tests::partial_write_truncates_incomplete_line ... ok
[INFO] [stdout] test shard::tests::append_with_lock ... ok
[INFO] [stdout] test shard::tests::clock_is_monotonic ... ok
[INFO] [stdout] test shard::tests::clock_never_goes_backward ... ok
[INFO] [stdout] test shard::tests::clock_reads_back_written_value ... ok
[INFO] [stdout] test shard::tests::clock_starts_at_zero ... ok
[INFO] [stdout] test shard::tests::append_raw_adds_line ... ok
[INFO] [stdout] test shard::tests::append_returns_monotonic_timestamps ... ok
[INFO] [stdout] test shard::tests::create_shard_idempotent ... ok
[INFO] [stdout] test shard::tests::ensure_dirs_creates_directories ... ok
[INFO] [stdout] test shard::tests::ensure_dirs_is_idempotent ... ok
[INFO] [stdout] test shard::tests::create_shard_writes_header ... ok
[INFO] [stdout] test shard::tests::frozen_shard_not_modified_by_append ... ok
[INFO] [stdout] test shard::tests::init_creates_first_shard ... ok
[INFO] [stdout] test shard::tests::init_is_idempotent ... ok
[INFO] [stdout] test shard::tests::is_empty_no_shards ... ok
[INFO] [stdout] test shard::tests::event_count_excludes_comments_and_blanks ... ok
[INFO] [stdout] test shard::tests::event_count_empty ... ok
[INFO] [stdout] test shard::tests::list_shards_empty ... ok
[INFO] [stdout] test shard::tests::is_empty_with_shards ... ok
[INFO] [stdout] test recovery::tests::open_db_with_retry_succeeds_immediately ... ok
[INFO] [stdout] test recovery::tests::open_db_with_retry_handles_missing_db ... ok
[INFO] [stdout] test shard::tests::manifest_roundtrip ... ok
[INFO] [stdout] test shard::tests::list_shards_no_events_dir ... ok
[INFO] [stdout] test shard::tests::parse_invalid_shard_filenames ... ok
[INFO] [stdout] test shard::tests::parse_valid_shard_filenames ... ok
[INFO] [stdout] test shard::tests::read_content_range_beyond_end ... ok
[INFO] [stdout] test shard::tests::read_content_range_empty_range ... ok
[INFO] [stdout] test shard::tests::read_content_range_across_shard_boundary ... ok
[INFO] [stdout] test shard::tests::list_shards_skips_non_shard_files ... ok
[INFO] [stdout] test shard::tests::list_shards_returns_sorted ... ok
[INFO] [stdout] test shard::tests::read_manifest_missing ... ok
[INFO] [stdout] test shard::tests::recover_clean_file ... ok
[INFO] [stdout] test shard::tests::recover_no_active_shard ... ok
[INFO] [stdout] test recovery::tests::missing_db_with_events_rebuilds ... ok
[INFO] [stdout] test shard::tests::replay_empty_repo ... ok
[INFO] [stdout] test shard::tests::recover_torn_write_truncates ... ok
[INFO] [stdout] test shard::tests::replay_from_offset_at_end_returns_empty ... ok
[INFO] [stdout] test shard::tests::read_content_range_within_single_shard ... ok
[INFO] [stdout] test shard::tests::manifest_event_count_excludes_comments ... ok
[INFO] [stdout] test shard::tests::recover_no_newline_at_all ... ok
[INFO] [stdout] test shard::tests::replay_from_offset_skips_content_before_cursor ... ok
[INFO] [stdout] test shard::tests::replay_from_offset_total_len_equals_total_content_len ... ok
[INFO] [stdout] test shard::tests::replay_from_offset_skips_sealed_shards_before_cursor ... ok
[INFO] [stdout] test shard::tests::replay_from_offset_zero_returns_full_content ... ok
[INFO] [stdout] test shard::tests::replay_lines_skips_forwarding_pointer_shard ... ok
[INFO] [stdout] test shard::tests::replay_single_shard ... ok
[INFO] [stdout] test shard::tests::shard_filename_format ... ok
[INFO] [stdout] test shard::tests::shard_manager_paths ... ok
[INFO] [stdout] test shard::tests::system_time_us_is_positive ... ok
[INFO] [stdout] test shard::tests::system_time_us_is_reasonable ... ok
[INFO] [stdout] test shard::tests::rotate_creates_shard_if_none_exist ... ok
[INFO] [stdout] test shard::tests::recover_empty_file ... ok
[INFO] [stdout] test shard::tests::rotate_no_op_same_month ... ok
[INFO] [stdout] test shard::tests::total_content_len_multiple_shards ... ok
[INFO] [stdout] test shard::tests::total_content_len_empty_repo ... ok
[INFO] [stdout] test shard::tests::write_and_read_manifest ... ok
[INFO] [stdout] test shard::tests::replay_multiple_shards_in_order ... ok
[INFO] [stdout] test shard::tests::total_content_len_single_shard ... ok
[INFO] [stdout] test sync::merge::tests::concurrent_events_at_same_timestamp ... ok
[INFO] [stdout] test sync::merge::tests::dedup_multiple_shared_events ... ok
[INFO] [stdout] test sync::merge::tests::dedup_same_hash_different_position ... ok
[INFO] [stdout] test sync::merge::tests::divergent_branches_with_shared_base ... ok
[INFO] [stdout] test sync::merge::tests::deterministic_output_regardless_of_input_order ... ok
[INFO] [stdout] test sync::merge::tests::dedup_identical_events_in_both_sides ... ok
[INFO] [stdout] test sync::merge::tests::idempotent_merge ... ok
[INFO] [stdout] test sync::merge::tests::merge_both_empty ... ok
[INFO] [stdout] test sync::merge::tests::merge_disjoint_sets ... ok
[INFO] [stdout] test sync::merge::tests::merge_remote_only ... ok
[INFO] [stdout] test sync::merge::tests::same_timestamp_sorted_by_agent ... ok
[INFO] [stdout] test sync::merge::tests::same_timestamp_same_agent_sorted_by_hash ... ok
[INFO] [stdout] test sync::merge::tests::large_symmetric_merge_is_deterministic ... ok
[INFO] [stdout] test sync::merge::tests::sorted_by_wall_ts_ascending ... ok
[INFO] [stdout] test sync::merge::tests::merge_local_only ... ok
[INFO] [stdout] test sync::prolly::tests::chunk_boundaries_are_content_defined ... ok
[INFO] [stdout] test sync::prolly::tests::deterministic_root_hash_different_insertion_order ... ok
[INFO] [stdout] test sync::prolly::tests::deterministic_root_hash_same_order ... ok
[INFO] [stdout] test recovery::tests::missing_db_empty_events ... ok
[INFO] [stdout] test sync::prolly::tests::diff_identical_trees_is_empty ... ok
[INFO] [stdout] test sync::prolly::tests::diff_empty_vs_populated ... ok
[INFO] [stdout] test sync::prolly::tests::build_and_diff_stress ... ok
[INFO] [stdout] test sync::prolly::tests::diff_finds_new_events ... ok
[INFO] [stdout] test sync::prolly::tests::empty_diff_with_empty ... ok
[INFO] [stdout] test sync::prolly::tests::gear_table_is_deterministic ... ok
[INFO] [stdout] test sync::prolly::tests::hash_display ... ok
[INFO] [stdout] test shard::tests::rotate_different_month_seals_and_creates ... ok
[INFO] [stdout] test sync::prolly::tests::serialization_preserves_event_count ... ok
[INFO] [stdout] test sync::prolly::tests::diff_with_overlapping_events ... ok
[INFO] [stdout] test sync::prolly::tests::same_item_different_timestamps ... ok
[INFO] [stdout] test sync::prolly::tests::single_event ... ok
[INFO] [stdout] test sync::protocol::tests::sync_concurrent_same_item ... ok
[INFO] [stdout] test sync::prolly::tests::serialization_roundtrip ... ok
[INFO] [stdout] test sync::protocol::tests::estimate_size_is_reasonable ... ok
[INFO] [stdout] test sync::protocol::tests::sync_empty_replicas_is_noop ... ok
[INFO] [stdout] test sync::prolly::tests::diff_symmetric_finds_both_sides ... ok
[INFO] [stdout] test sync::prolly::tests::empty_tree ... ok
[INFO] [stdout] test sync::protocol::tests::sync_diverged_replicas_converge ... ok
[INFO] [stdout] test sync::prolly::tests::many_events_produce_multiple_chunks ... ok
[INFO] [stdout] test sync::protocol::tests::sync_empty_to_populated ... ok
[INFO] [stdout] test sync::protocol::tests::sync_identical_replicas_is_noop ... ok
[INFO] [stdout] test sync::protocol::tests::sync_is_idempotent ... ok
[INFO] [stdout] test sync::protocol::tests::sync_report_is_noop ... ok
[INFO] [stdout] test tests::it_works ... ok
[INFO] [stdout] test sync::protocol::tests::sync_report_bytes_nonzero ... ok
[INFO] [stdout] test timing::tests::collect_report_groups_and_sorts_operations ... ok
[INFO] [stdout] test timing::tests::display_table_and_json_have_expected_fields ... ok
[INFO] [stdout] test timing::tests::timed_does_not_record_when_disabled ... ok
[INFO] [stdout] test timing::tests::truthy_parser_is_case_insensitive ... ok
[INFO] [stdout] test sync::protocol::tests::sync_one_side_subset_of_other ... ok
[INFO] [stdout] test undo::tests::compensating_event_references_original_in_parents ... ok
[INFO] [stdout] test undo::tests::compensating_event_uses_current_agent_and_timestamp ... ok
[INFO] [stdout] test sync::protocol::tests::sync_populated_to_empty ... ok
[INFO] [stdout] test undo::tests::undo_comment_is_grow_only ... ok
[INFO] [stdout] test undo::tests::undo_assign_flips_to_unassign ... ok
[INFO] [stdout] test sync::prolly::tests::large_diff_performance ... ok
[INFO] [stdout] test timing::tests::timed_records_when_enabled ... ok
[INFO] [stdout] test sync::protocol::tests::sync_large_divergence ... ok
[INFO] [stdout] test undo::tests::undo_create_emits_delete ... ok
[INFO] [stdout] test undo::tests::undo_delete_no_prior_create_returns_error ... ok
[INFO] [stdout] test undo::tests::undo_delete_reconstructs_create ... ok
[INFO] [stdout] test undo::tests::undo_link_emits_unlink ... ok
[INFO] [stdout] test undo::tests::undo_move_returns_to_prior_state ... ok
[INFO] [stdout] test undo::tests::undo_move_falls_back_to_open_with_no_prior ... ok
[INFO] [stdout] test undo::tests::undo_snapshot_is_grow_only ... ok
[INFO] [stdout] test undo::tests::undo_unassign_flips_to_assign ... ok
[INFO] [stdout] test undo::tests::undo_unlink_emits_link ... ok
[INFO] [stdout] test undo::tests::undo_update_no_prior_returns_error ... ok
[INFO] [stdout] test verify::redact::tests::probe_words_filters_short_and_stop_words ... ok
[INFO] [stdout] test undo::tests::undo_update_finds_prior_value ... ok
[INFO] [stdout] test verify::redact::tests::probe_words_handles_empty_text ... ok
[INFO] [stdout] test verify::redact::tests::probe_words_limits_to_five ... ok
[INFO] [stdout] test verify::redact::tests::probe_words_strips_punctuation ... ok
[INFO] [stdout] test verify::redact::tests::report_is_ok_when_no_failures ... ok
[INFO] [stdout] test verify::redact::tests::report_not_ok_when_failures_exist ... ok
[INFO] [stdout] test undo::tests::undo_update_uses_most_recent_prior_value ... ok
[INFO] [stdout] test verify::redact::tests::report_serializes_to_json ... ok
[INFO] [stdout] test verify::redact::tests::searchable_text_from_comment ... ok
[INFO] [stdout] test undo::tests::undo_redact_is_grow_only ... ok
[INFO] [stdout] test verify::redact::tests::searchable_text_from_create ... ok
[INFO] [stdout] test sync::protocol::tests::sync_many_small_events ... ok
[INFO] [stdout] test graph::cycles::tests::performance_large_dag_with_cycle_at_end ... ok
[INFO] [stdout] test verify::tests::verify_regenerates_missing_manifest_for_sealed_shard ... ok
[INFO] [stdout] test verify::redact::tests::verify_redactions_comment_properly_redacted ... ok
[INFO] [stdout] test verify::redact::tests::verify_redactions_no_redacts ... ok
[INFO] [stdout] test verify::redact::tests::verify_detects_missing_redaction_record ... ok
[INFO] [stdout] test verify::redact::tests::verify_multiple_redactions_mixed_results ... ok
[INFO] [stdout] test verify::redact::tests::verify_redactions_empty_log ... ok
[INFO] [stderr]      Running tests/convergence.rs (/opt/rustwide/target/debug/deps/convergence-724971b6f93ab3a3)
[INFO] [stdout] test verify::redact::tests::verify_item_redaction_filters_by_item ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1081 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.42s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test epoch_phase_race_converges_to_higher_epoch ... ok
[INFO] [stdout] test orset_add_remove_race_is_add_wins_and_convergent ... ok
[INFO] [stdout] test lww_tie_converges_deterministically ... ok
[INFO] [stdout] test three_agents_converge_all_merge_orderings ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/edge_cases.rs (/opt/rustwide/target/debug/deps/edge_cases-0203ca33941cb32f)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test concurrent_move_different_states_converges_deterministically ... ok
[INFO] [stdout] test concurrent_done_by_both_agents_is_idempotent ... ok
[INFO] [stdout] test circular_blocking_dependency_detected_and_reported ... ok
[INFO] [stdout] test empty_db_list_items_returns_empty ... ok
[INFO] [stdout] test empty_db_get_comments_returns_empty ... ok
[INFO] [stdout] test empty_db_get_item_returns_none ... ok
[INFO] [stdout] test empty_db_get_dependencies_returns_empty ... ok
[INFO] [stdout] test goal_with_zero_children_has_no_child_rows ... ok
[INFO] [stdout] test goal_child_added_while_goal_closes_both_preserved ... ok
[INFO] [stdout] test mutual_blocking_dependency_detected ... ok
[INFO] [stdout] test orset_both_agents_add_same_label_is_idempotent ... ok
[INFO] [stdout] test orset_concurrent_add_remove_is_add_wins_all_orderings ... ok
[INFO] [stdout] test lww_higher_wall_ts_wins_regardless_of_merge_order ... ok
[INFO] [stdout] test self_loop_blocking_dependency_detected ... ok
[INFO] [stdout] test lww_same_ts_different_agents_tie_breaks_by_agent_id ... ok
[INFO] [stdout] test same_item_id_different_agents_have_different_event_hashes ... ok
[INFO] [stdout] test single_item_no_deps_list_returns_it ... ok
[INFO] [stdout] test three_way_concurrent_merge_all_6_permutations_converge ... ok
[INFO] [stdout] test item_with_64kb_description_round_trips ... ok
[INFO] [stdout] test two_creates_different_item_ids_same_content_are_distinct ... ok
[INFO] [stdout] test item_with_1000_labels_all_preserved ... ok
[INFO] [stdout] test goal_nesting_100_deep_does_not_panic ... ok
[INFO] [stdout] test single_item_1000_updates_final_state_correct ... ok
[INFO] [stdout] test item_with_10000_labels_crdt_no_panic ... ok
[INFO] [stdout] test create_1000_items_all_present ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.12s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/fault_injection.rs (/opt/rustwide/target/debug/deps/fault_injection-b0db002c7f4fcdb3)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test truncated_event_line_recovery ... ok
[INFO] [stdout] test corrupt_shard_and_stale_projection_recover_deterministically ... ok
[INFO] [stdout] test missing_db_triggers_auto_rebuild ... ok
[INFO] [stdout] test write_failure_surfaces_clear_permission_error ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- write_failure_surfaces_clear_permission_error stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'write_failure_surfaces_clear_permission_error' (5723) panicked at crates/bones-core/tests/fault_injection.rs:332:29:
[INFO] [stdout] append should fail when shard is read-only: ()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58616023be88 - std[929523f510218772]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x58616023be88 - std[929523f510218772]::backtrace_rs::backtrace::trace_unsynchronized::<std[929523f510218772]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x58616023be88 - std[929523f510218772]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x58616023be88 - <<std[929523f510218772]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[28b146924c2f19c6]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x58616025283a - <core[28b146924c2f19c6]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x58616025283a - core[28b146924c2f19c6]::fmt::write
[INFO] [stdout]    6:     0x586160240ee2 - std[929523f510218772]::io::default_write_fmt::<alloc[95e62e727ddf147d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x586160240ee2 - <alloc[95e62e727ddf147d]::vec::Vec<u8> as std[929523f510218772]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x586160217686 - <std[929523f510218772]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x586160217686 - std[929523f510218772]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5861602324b9 - std[929523f510218772]::panicking::default_hook
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x58615ff4c8fc - <alloc[95e62e727ddf147d]::boxed::Box<dyn for<'a, 'b> core[28b146924c2f19c6]::ops::function::Fn<(&'a std[929523f510218772]::panic::PanicHookInfo<'b>,), Output = ()> + core[28b146924c2f19c6]::marker::Sync + core[28b146924c2f19c6]::marker::Send> as core[28b146924c2f19c6]::ops::function::Fn<(&std[929523f510218772]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/alloc/src/boxed.rs:2291:9
[INFO] [stdout]   12:     0x58615ff4c8fc - test[6ec0502068880816]::test_main_inner::<test[6ec0502068880816]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x586160232672 - <alloc[95e62e727ddf147d]::boxed::Box<dyn for<'a, 'b> core[28b146924c2f19c6]::ops::function::Fn<(&'a std[929523f510218772]::panic::PanicHookInfo<'b>,), Output = ()> + core[28b146924c2f19c6]::marker::Sync + core[28b146924c2f19c6]::marker::Send> as core[28b146924c2f19c6]::ops::function::Fn<(&std[929523f510218772]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/alloc/src/boxed.rs:2291:9
[INFO] [stdout]   14:     0x586160232672 - std[929523f510218772]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x586160217742 - std[929523f510218772]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x58616020c119 - std[929523f510218772]::sys::backtrace::__rust_end_short_backtrace::<std[929523f510218772]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5861602185dd - __rustc[acf6043c977865fb]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x586160252ffc - core[28b146924c2f19c6]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x586160252d72 - core[28b146924c2f19c6]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/result.rs:1872:5
[INFO] [stdout]   20:     0x58615ff3c643 - <core[28b146924c2f19c6]::result::Result<(), bones_core[90f19e19dfb78d4e]::shard::ShardError>>::expect_err
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/result.rs:1298:22
[INFO] [stdout]   21:     0x58615ff3a534 - fault_injection[5cbe770082f36ee4]::write_failure_surfaces_clear_permission_error
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/bones-core/tests/fault_injection.rs:332:29
[INFO] [stdout]   22:     0x58615ff37287 - fault_injection[5cbe770082f36ee4]::write_failure_surfaces_clear_permission_error::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/bones-core/tests/fault_injection.rs:299:51
[INFO] [stdout]   23:     0x58615ff3f8b6 - <fault_injection[5cbe770082f36ee4]::write_failure_surfaces_clear_permission_error::{closure#0} as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x58615ff3f9db - <fn() -> core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x58615ff3f9db - test[6ec0502068880816]::__rust_begin_short_backtrace::<core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>, fn() -> core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x58615ff4d255 - test[6ec0502068880816]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x58615ff4d255 - <core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x58615ff4d255 - std[929523f510218772]::panicking::catch_unwind::do_call::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}>, core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x58615ff4d255 - std[929523f510218772]::panicking::catch_unwind::<core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>, core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x58615ff4d255 - std[929523f510218772]::panic::catch_unwind::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}>, core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x58615ff4d255 - test[6ec0502068880816]::run_test_in_process
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x58615ff4d255 - test[6ec0502068880816]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x58615ff47db4 - test[6ec0502068880816]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x58615ff47db4 - std[929523f510218772]::sys::backtrace::__rust_begin_short_backtrace::<test[6ec0502068880816]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x58615ff502d2 - std[929523f510218772]::thread::lifecycle::spawn_unchecked::<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x58615ff502d2 - <core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x58615ff502d2 - std[929523f510218772]::panicking::catch_unwind::do_call::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x58615ff502d2 - std[929523f510218772]::panicking::catch_unwind::<(), core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x58615ff502d2 - std[929523f510218772]::panic::catch_unwind::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x58615ff502d2 - std[929523f510218772]::thread::lifecycle::spawn_unchecked::<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x58615ff502d2 - <std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1} as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x58616023af1f - <alloc[95e62e727ddf147d]::boxed::Box<dyn core[28b146924c2f19c6]::ops::function::FnOnce<(), Output = ()> + core[28b146924c2f19c6]::marker::Send> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/alloc/src/boxed.rs:2277:9
[INFO] [stdout]   43:     0x58616023af1f - <std[929523f510218772]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x71505e263aa4 - <unknown>
[INFO] [stdout]   45:     0x71505e2f0a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     write_failure_surfaces_clear_permission_error
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p bones-core --test fault_injection`
[INFO] running `Command { std: "docker" "inspect" "56b6cffc38b2595f9253e172303d267487679d480b0a0db3a023c86a18b4f1db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "56b6cffc38b2595f9253e172303d267487679d480b0a0db3a023c86a18b4f1db", kill_on_drop: false }`
[INFO] [stdout] 56b6cffc38b2595f9253e172303d267487679d480b0a0db3a023c86a18b4f1db
